ボタンは、AJAXを使用してクリックされたMVC部分ポストバック
-
13-09-2019 - |
質問
シナリオ: 私は、ドロップダウンリスト、モデルからのデータを表示するボタンとhtmlのテーブルを持っています。 以下のaspx&内のコードはコントローラ
私は送信ボタンをクリックすると、データがポストバックせずに表示されますが、ドロップダウンリスト&ボタンには、次のクリックは大丈夫です二回、次に表示されます。
私はどこにでもHtml.RenderPartialを使用する必要があり、わからない???
//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>
解決
あなたは、このケースでは、(ユーザーコントロールのような)部分ビューではない通常のビューを作成する必要があります。そして、あなたはHtml.RenderPartialとコントロールとしてあなたのメインビューにあなたの部分図を追加する必要があります。
所属していません StackOverflow