我有一个Partial View,它返回一个使用Ajax.BeginForm()插入DOM的表。但部分视图没有被调用。当我单步执行调试器时,它只是跳过部分视图。为什么呢?
---------------这是带Ajax调用的视图----------------------
<h2>Enter a street name</h2>
@using (Ajax.BeginForm("QuickSearchResults", "Search",
new AjaxOptions
{
HttpMethod = "Get",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "test"
}))
{
<input type="text" name="q" />
<input type="submit" value="Search" />
}
<div id="test">
</div>
----------------------控制器动作----------------------- -----------
public PartialViewResult QuickSearchResults(string q)
{
ViewBag.LogOn = true;
var properties = remsrepository.GetPropertyByStreetName(q);
**return PartialView("_Property", properties);**
}
------------------------------Partial View --------------------------
@model IEnumerable<REMS.Models.Property>
<table id="searchresults">
<tr>
<th>Adress</th>
<th>Status</th>
<th>List Price</th>
</tr>
@foreach(var item in Model)
{
<tr>
<td>
@Html.ActionLink(item.Property_Address.Street__ + " " + `item.Property_Address.Street_Name,`
"PropertyDetails","Search", new {MLS = item.MLS})
</td>
<td>
@item.Status
</td>
<td>
@item.List_Price
</td>
</tr>
}
</table>
答案 0 :(得分:0)
您已设置UpdateTargetId="searchresults"
,但searchresults
元素在部分视图中是实际的。这意味着如果部分视图在初始加载页面时不是DOM的一部分,那么当您提交AJAX表单时,没有id =“searchresults”的元素,所以没有任何反应。一种可能性是在partial之外放置一个唯一id的div,然后将其用作UpdateTargetId
。