我在 HomeController :
中有这个public ActionResult Details(string id)
{
var customer = Customers.GetCustomersById(id);
return PartialView("CustomerDetails", customer);
}
这是 Index.aspx :
<div>
<% using (Ajax.BeginForm("Details", new AjaxOptions
{
UpdateTargetId = "customerDetails",
InsertionMode = InsertionMode.Replace,
HttpMethod = "POST"
}))
{ %>
<p>
Customer:
<%=Html.DropDownList("id")%></p>
<p>
<input type="submit" value="Details" /></p>
<% } %>
</div>
<div id="customerDetails">
</div>
最后在 CustomerDetails.ascx 我有:
<fieldset>
<legend>Fields</legend>
<p>
Name:
<%= Html.Encode(Model.Name) %>
</p>
<p>
Credit:
<%= Html.Encode(Model.Credit) %>
</p>
<p>
CustomerID:
<%= Html.Encode(Model.CustomerID) %>
</p>
</fieldset>
<p>
<%=Html.ActionLink("Edit", "Edit", new { /* id=Model.PrimaryKey */ }) %> |
<%=Html.ActionLink("Back to List", "Index") %>
</p>
通过右键单击Details-method并选择“Add View”,然后选择部分视图和强类型视图,生成了CustomerDetails.ascx。
我希望这能在Index.html中名为“customerDetails”的div内以“Ajax-manner”更新客户详细信息。问题是按下详细信息按钮后,将打开一个新页面,其中包含正确的详细信息。输出页面没有母版页颜色或布局。
如果我在Details-method上调试,则客户对象的内容是正确的。
任何帮助表示赞赏!
/ POM
答案 0 :(得分:4)
最可能的罪魁祸首是您没有在页面上包含MicrosoftAjax.js和MicrosoftMvcAjax.js。这会导致javascript失败,因为它无法找到必要的函数,而且表单通过Ajax正常提交。