【发布时间】:2011-10-04 17:13:16
【问题描述】:
我的 Search.cshtml 有一个要更新的名为“search-results”的 div。 SearchResults 是操作名称。我在 MVC2/VS2008 项目上做过很多次,但这是我第一次使用 MVC3 和 VS2010。
问题是,我的搜索结果不是在我的 div 中呈现,而是单击提交重定向我将我的部分显示为独立页面。
我读到这可能是因为 Ajax 未启用。我的 _Layout.cshtml 看起来像这样:
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<script src="@Url.Content("~/Scripts/2011.2.712/jquery-1.5.1.min.js")" type="text/javascript"></script>
<link href="@Url.Content("~/Content/themes/base/jquery.ui.core.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/themes/base/jquery.ui.datepicker.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/themes/base/jquery.ui.theme.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/main.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/2011.2.712/jquery-1.5.1.min.js")" type="text/javascript"></script>
@(Html.Telerik().StyleSheetRegistrar().DefaultGroup(group => group.Add("telerik.common.css").Add("telerik.transparent.css").Combined(true).Compress(true)))
</head>
<body>
<div class="page">
<div id="header">
<div id="title">
<h1>My MVC Application</h1>
</div>
@(Html.Telerik().Menu()
.Name("menu")
.Items(menu => {
menu.Add().Text("Home").Action("Index", "Home");
menu.Add().Text("About").Action("About", "Home");
menu.Add().Text("Employees").Action("List", "Employee");
}))
</div>
<div id="main">
@RenderBody()
<div id="footer">
</div>
</div>
</div>
@(Html.Telerik().ScriptRegistrar().DefaultGroup(group => group.Combined(true).Compress(true)))</body>
</html>
我需要添加 MicrosoftMvcAjax.js 或 jquery.unobtrusive-ajax.js 吗?我的 web.config (root) 包含以下内容:
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
如果我在元素末尾添加 MicrosoftMvcAjax.js,我会从 MicrosoftMvcAjax.js 的第一行收到一条错误消息,提示命名空间“类型”是未定义的错误:
Type.registerNamespace('Sys.Mvc');Sys.Mvc.$create_AjaxOptions=function(){return {};}
我在这里错过了什么。我确信我的代码很好,因为它几乎是从我的 MVC2 项目中逐字复制的。
【问题讨论】:
标签: c# ajax asp.net-mvc forms razor