代码仍会在新页面上加载内容

时间:2013-02-17 18:09:59

标签: asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-2 razor

您好我的MVC应用程序有问题。 我想点击ActionLink>从服务器加载数据>并在同一页面中将数据插入div。 但我的代码仍然在新页面加载内容,我不知道为什么。有人帮我吗?

这是我在HomeController中的Index.cshtml,

    @model IEnumerable<Kango_kmen.KangoKmenWS.WSEntityInfo>
    @Content.Script("jquery-1.9.1.min.js", Url)
    @Content.Script("jquery.unobtrusive-ajax.min.js",Url)
    @Content.Script("jquery.unobtrusive-ajax.js",Url)
    @Content.Script("myScript.js",Url)

    @section Entities{


    <table>
    <tr>
    <th>
      <input type="submit" value="zobrazit" />
    </th>
    <th>
        iD
    </th>
    <th>
        name
    </th>

    </tr>

    @foreach (var item in Model) {
    <tr>
    <td>
    @Ajax.ActionLink("..", "CheckEntity", new { id = item.iD }, 
            new AjaxOptions{ UpdateTargetId="properties",
                             HttpMethod="GET",
                             InsertionMode=InsertionMode.InsertAfter,
            })
    </td>
    <td>            
        @Html.DisplayFor(modelItem => item.iD)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.name)
    </td>

    </tr>  
    <tr>
     <td>
         <div id="properties">

         </div>
     </td>
    </tr>
     }
    </table>
     }


     @section PropertyInfo{
     <p>Property info</p>
     } 

     @section Properties{
     <p>properties</p>
     }

这是我在HomeController中的控制器

    public PartialViewResult CheckEntity(int id)
    {

        var model = WSConnect.getEntityInfo(id);
        if(model !=null){
            return PartialView("CheckEntity", model.property);
        }
        var modell = new WSEntityInfo[0];
        return PartialView("CheckEntity", modell);
    }

和ChecktEntity是部分视图,但每次我点击ActionLink控制器加载url:/ Home / ChceckEntity / 1000以获取此新页面上的查看数据的例外情况“(

1 个答案:

答案 0 :(得分:2)

您的代码有两个问题:

  1. 您已将jquery.unobtrusive-ajax.js脚本包括两次,一旦是缩小版本,一次是标准版本。你应该只包括一次
  2. jquery.unobtrusive-ajax.js不兼容with jquery 1.9.1,因为jQuery 1.9中的一个重大变化是.live() method was removedjquery.unobtrusive-ajax.js脚本依赖它。如果你查看你的javascript控制台,你会看到以下错误:The .live method is undefined.。因此,如果您想在ASP.NET MVC中使用不显眼的AJAX功能,则必须降级jQuery的版本。例如,1.8.3版本应该没问题。
  3. 所以:

    @model IEnumerable<Kango_kmen.KangoKmenWS.WSEntityInfo>
    @Content.Script("jquery-1.8.3.min.js", Url)
    @Content.Script("jquery.unobtrusive-ajax.min.js", Url)
    @Content.Script("myScript.js", Url)
    

    另请注意如何调试您的javascript代码。使用FireBug或Chrome开发人员工具栏等工具,可以显示所有这些错误。