【发布时间】:2012-01-06 15:57:36
【问题描述】:
我有一个视图,我正在尝试执行 ajax 调用(使用 MVC Ajax 支持)并将返回的部分视图插入页面上的 div。据我所知,我正在做的是非常循规蹈矩的。但我收到的不是 Ajax 调用和更新的div,而是完整的回发。
这是视图的相关部分:
<fieldset>
<legend>Available Instructors</legend>
<p>
@{ using (Ajax.BeginForm("InstructorSearch", "CourseSection", new AjaxOptions() { UpdateTargetId = "divSearchResult" }))
{
@Html.Raw(" Search: ")
<select id="SearchType" name="SearchType">
<option value="Last" @( (ViewBag.SearchType == "Last") ? " selected" : "")>Last Name</option>
<option value="First" @( (ViewBag.SearchType == "First") ? " selected" : "")>First Name</option>
</select>
@Html.Raw(" ")
<input type="text" id="SearchText" name="SearchText" value="@( ViewBag.SearchText)" />
@Html.Raw(" ")
<input type="submit" id="Search" name="Search" value="Search" />
}
}
</p>
<div id="divSearchResult"></div>
</fieldset>
这是控制器上的方法:
[HttpPost]
public PartialViewResult InstructorSearch(string searchType, string searchText)
{
var list = Services.InstructorService.ListInstructors(
base.CurrentOrganizationId.Value,
(searchType == "First") ? searchText : null,
(searchType == "Last") ? searchText : null,
0,
Properties.Settings.Default.InstructorListPageSize
);
return PartialView(list);
}
我已经检查过了,我正在加载 MicrosoftAjax.js 和 MicrosoftMvcAjax.js。
所以我很难过。我知道我可以很容易地在 jQuery 中完成所有这些工作,并且我在其他地方也做过,但在这种情况下,出于不值得探讨的原因,如果可以使其工作,那将是最简单、最干净的,最容易理解的解决方案。
【问题讨论】:
标签: ajax asp.net-mvc-3