2011-03-03 63 views
0

我有一个名为searchResultPlayer的ascx文件。 鉴于我使用以下代码后更新partialview - jquery

<div id="player"> 
    <% Html.RenderPartial("SearchResultPlayer"); %> 
    </div> 

我使用以下jQuery代码后呈现上述ASCX文件。

$('#resultTable tr').live('click', function (event) { 
$.post("/Search/SearchResult", { 
      content: "GetCallDetails" 
     } 
     ); 
    }); 

邮政工作正常。从控制器我返回partialview.Code如下所示

return PartialView("SearchResutPlayer", searchModel); . 

控制器每个post.I回国后这可以看出,在调试。

我的问题是如何更新视图中使用jquery返回的值?

我知道我可以使用这样的事情

<% using (Ajax.BeginForm("SearchResult", "Search", 
         new AjaxOptions {        
          HttpMethod="POST", 
          UpdateTargetId="player",        
         })) { %> } 

但由于一些问题,我不能用ajax开始形式。所以在jQuery中有什么像UpdateTargetId ???

EDIT

我试图通过达林建议的方法。 我写的jQuery这样

    $('#player').load(
       '<%= Url.Action("SearchResult", "Search") %>', 
       { content: 'GetCallDetails' } 
      ); 

查看

if (Request.IsAjaxRequest()) 
     { 
      if (content != null)     

      { 
       searchModel.selectedRecord = "test message"; 
       return PartialView("SearchResutPlayer", searchModel); 
      } 
     } 

而且在ASCX文件

<label> <%= Html.Encode(Model.selectedRecord) %></label> 

最初Model.selected有一个像 '装' 的值。但阿贾克斯后发布其不改变为“测试消息”

我试图通过PsychoCoder too.But建议的方法多数民众赞成也没有工作

回答

4

但由于一些问题,我不能用ajax开始形式。

有问题吗?我不会称这完全是问题。我会称之为好设计。如果你不能使用Ajax.*帮手,你是一个快乐的人。我个人讨厌那些助手,因为他们把你的标记成污染,这是尤其如此,MVC 1和2

所以在jQuery的你有.html()功能,允许您设置一个给定的元素的HTML:

$('#resultTable tr').live('click', function (event) { 
    $.post(
     '<%= Url.Action("SearchResult", "Search") %>', 
     { content: 'GetCallDetails' }, 
     function(result) { 
      $('#player').html(result); 
     } 
    ); 
}); 

甚至与.load()功能简单:

$('#resultTable tr').live('click', function (event) { 
    $('#player').load(
     '<%= Url.Action("SearchResult", "Search") %>', 
     { content: 'GetCallDetails' } 
    ); 
}); 

还要注意的网址助手的使用,而不是硬编码的网址。你应该总是使用URL打交道时使用的网址助手,因为有对StackOverflow上简直像问题百分之部署在IIS的时候,我只是不想多一个:-)

+0

hi.thanx寻求帮助。我尝试了你建议的两种方法。但它并没有取代searchresultplayer.ascx文件。当使用htmlhelper时,我可以调试那个ascx文件。但是当使用jQuery的时候,ascx文件上的断点不工作,它不能取代当前的数据。我是否需要使用ascx文件来重新加载页面的某些部分? – 2011-03-03 08:16:09

+0

@Null指针,你的'/ Search/SearchResult'控制器动作返回什么?通常它应该返回部分,就像这样返回PartialView(“searchresultplayer”);'。 – 2011-03-03 09:30:33

+0

你可以看看编辑的问题 – 2011-03-03 13:14:09

0

看看我的应用程序停止工作在问题here,看看这是你想要完成