当我点击该链接时,我想用@ Ajax.actionLink替换一个带有视图的div。但它无效。
这是我的链接
<div>
<li> @Ajax.ActionLink("settings","Create","Test",
new AjaxOptions { UpdateTargetId = "components" , InsertionMode = InsertionMode.Replace}
) </li>
</div>
和我的目标div
<div id="components">
</div>
我还在布局中包含了js文件
<script src="~/Scripts/Controls/jquery-2.0.3.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<script src="~/Scripts/modernizr-2.5.3.js"></script>
和我的行动结果
public PartialViewResult Create()
{
return PartialView("Create");
}
答案 0 :(得分:11)
对于安装了Microsoft.jQuery.Unobtrusive.Ajax(通过nu-get或不通过nu-get)并希望通过捆绑使用它的人,请不要忘记:
在bundleconfig中添加库。例如:
bundles.Add(new ScriptBundle("~/bundles/unobtrusive").Include(
"~/Scripts/jquery.unobtrusive*"));
渲染它(我的渲染在_Layout.cshtml中):
@ Scripts.Render( “〜/捆绑/不显眼”)
我知道这是一个旧帖子,但我猜是不能添加其他信息。
答案 1 :(得分:7)
信不信由你,除了一件事以外,我已经正确设置了一切:
要安装Microsoft jQuery Unobtrusive Ajax,请运行以下命令 包管理器控制台中的命令:
PM> Install-Package Microsoft.jQuery.Unobtrusive.Ajax -Version 3.2.2
说明在这里:https://www.nuget.org/packages/Microsoft.jQuery.Unobtrusive.Ajax/
答案 2 :(得分:1)
当您撰写new AjaxOptions{ --- }
时,请将其写为:
new AjaxOptions() { .... } and write HttpMethod also in ajaxoptions.
ajax.actionlink的正确用法是:
@Ajax.ActionLink("Text", // <-- Text to display
"Action method", // <-- Action Method Name
"Controller Name", // <--Controller Name
new AjaxOptions()
{
UpdateTargetId="CustomerList", // <-- DOM element ID to update
InsertionMode = InsertionMode.Replace, // <-- Replace the content of DOM element
HttpMethod = "GET" // <-- HTTP method(Post/Get)
})
答案 3 :(得分:1)
如果是MVC5? 确保包含正确的不显眼的ajax包 即,您可以使用最新的软件包安装NuGet软件包管理器控制台
Install-Package Microsoft.jQuery.Unobtrusive.Ajax
安装最新版本后,它开始为我工作。