在asp.net mvc ajax中渲染局部视图时出错

时间:2015-02-07 09:55:53

标签: asp.net ajax asp.net-mvc asp.net-mvc-4 asp.net-ajax

在asp.net ajax中,部分视图响应替换了html,只渲染了部分视图。 在下面的代码片段中,当我单击ActionLink“Steps”时,将返回部分视图并替换Details.cshtml。

我需要的是这个局部视图应该只替换“main-content-div”div。

请帮忙。感谢

查看:Details.cshtml

<div class="main-body">

<table>
    <tr>
        <td class="left-sidebar extended">

            @Ajax.ActionLink("Steps", "Steps", new { id = ViewBag.Id }, new AjaxOptions { AllowCache = false, UpdateTargetId = "main-content-div", InsertionMode=InsertionMode.Replace })
        </td>
        <td class="main-wrapper">

            <div class="main-content" id="main-content-div">
                This is the default stuff which I'll be replacing...
            </div>
        </td>
        <td class="right-sidebar"></td>
    </tr>

</table>

行动方法:

[HttpGet]
    public PartialViewResult Steps(string id)
    {
        //reading model from db
        return PartialView("~/Views/Author/Exercise/_StepsPartial.cshtml", Model);
    }

部分视图:

@model IEnumerable<Model>
<div>
    <div>
        <input type="text" />
    </div>
</div>

1 个答案:

答案 0 :(得分:2)

您需要将jquery.unobtrusive-ajax.min.js添加到项目中才能实现此目的。

转到Nuget Console Package Manager控制台并输入:

Install-Package Microsoft.jQuery.Unobtrusive.Ajax

然后,您只需要在_Layout.cshtml顶部添加引用或查看相关脚本:

<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>