Asp.net mvc 使用ajax单击按钮时mvc部分回发
情景: 我有一个下拉列表,一个按钮和html表格,显示来自模型的数据。 以下是aspx&controller中的代码 当我单击submit按钮时,数据显示不回发,但dropdownlist&按钮出现两次,然后单击以下按钮即可 我应该在任何地方使用Html.RenderPartial吗,不确定Asp.net mvc 使用ajax单击按钮时mvc部分回发,asp.net-mvc,ajax,partial-views,Asp.net Mvc,Ajax,Partial Views,情景: 我有一个下拉列表,一个按钮和html表格,显示来自模型的数据。 以下是aspx&controller中的代码 当我单击submit按钮时,数据显示不回发,但dropdownlist&按钮出现两次,然后单击以下按钮即可 我应该在任何地方使用Html.RenderPartial吗,不确定 //Controller [AcceptVerbs(HttpVerbs.Post)] public ActionResult SimpleUpdate(int carMake)
//Controller
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SimpleUpdate(int carMake)
{
ViewData["CarMake"] = new SelectList(_carDataContext.Makes.Select(m => new { ID = m.Id, Name = m.Name }), "ID", "Name", carMake);
var carModel = _carDataContext.Models.Where(m => m.MakeId == carMake).ToList();
return PartialView("carmodels", carModel);
}
// in aspx
<%using (Ajax.BeginForm("SimpleUpdate", new AjaxOptions { UpdateTargetId = "ajaxPanel" }))
{%>
<%=Html.DropDownList("CarMake")%>
<br />
<input type="submit" value="SimpleUpdate" />
<%
}%>
<div id="ajaxPanel">
<%
if (Model != null)
{
%>
<table>
<tr>
<th>
Id
</th>
<th>
Name
</th>
<th>
MakeId
</th>
</tr>
<%
foreach (var item in Model)
{%>
<tr>
<td>
<%=Html.Encode(item.Id)%>
</td>
<td>
<%=Html.Encode(item.Name)%>
</td>
<td>
<%=Html.Encode(item.MakeId)%>
</td>
</tr>
<%
}%>
</table>
<%}%>
</div>
//控制器
[接受动词(HttpVerbs.Post)]
公共行动结果简单更新(int carMake)
{
ViewData[“CarMake”]=新建选择列表(_carDataContext.Makes.Select(m=>new{ID=m.ID,Name=m.Name}),“ID”,“Name”,CarMake);
var carModel=_carDataContext.Models.Where(m=>m.MakeId==carMake.ToList();
返回PartialView(“carmodels”,carModel);
}
//在aspx中
身份证件
名称
马克伊德
在这种情况下,您需要创建局部视图(如用户控件),而不是普通视图。您必须使用Html.RenderPartial将局部视图作为控件添加到主视图中