部分视图未执行

时间:2011-11-25 01:24:36

标签: asp.net-mvc

我有一个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>

1 个答案:

答案 0 :(得分:0)

您已设置UpdateTargetId="searchresults",但searchresults元素在部分视图中是实际的。这意味着如果部分视图在初始加载页面时不是DOM的一部分,那么当您提交AJAX表单时,没有id =“searchresults”的元素,所以没有任何反应。一种可能性是在partial之外放置一个唯一id的div,然后将其用作UpdateTargetId