MVC と AJAX は初めてです。
現在、フォームを送信しているだけで、フォームのデータを使用して、ajax を使用して部分ビューでテーブルを更新したいと考えています。
私の_UserInfo
部分的なビューは次のようになります。
@model IEnumerable<Dashboard.Models.UserInfo>
<table>
<tr>
<th>
Firstname
</th>
<th>
Lastname
</th>
<th>
EmailAddress
</th>
<th>
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.firstName)
</td>
<td>
@Html.DisplayFor(modelItem => item.surname)
</td>
<td>
@Html.DisplayFor(modelItem => item.emailAddress)
</td>
<td>
@Html.DisplayFor(modelItem => item.SAMuserName)
</td>
</tr>
}
</table>
私の主なUser
ビューは次のようになります。
@model Dashboard.Models.User
@Scripts.Render("~/bundles/jqueryval")
@using (Ajax.BeginForm("_UserInfo", "User", new AjaxOptions()
{
HttpMethod = "GET",
UpdateTargetId = "results",
InsertionMode = InsertionMode.Replace
}))
{
<fieldset>
//...My Form
<p>
<input type="submit" value="Find" />
</p>
</fieldset>
}
<div id="results">
</div>
そして最後にこれは私のものUserController
です:
public PartialViewResult UserResults(User person)
{
UserInfo personInfo = new UserInfo();
//....Doing stuff
return PartialView("_userInfo", personInfo);
}
今、私はこれがおそらく良くないことを知っています。しかし、これは私が少しの知識で試みた最高の試みです。
ユーザー ビューのボタンをクリックすると、_UserInfo が見つからないという 404 エラーが表示されます。
私の問題のすべての原因は、
@using (Ajax.BeginForm("_UserInfo", "User", new AjaxOptions()
{
HttpMethod = "GET",
UpdateTargetId = "results",
InsertionMode = InsertionMode.Replace
}))
しかし、私の知識では、何が間違っているのかわかりません。
*編集: * ご指摘のとおり、HTML フォームを正しく作成していませんでした。それ以来、私はそれを
@using (Ajax.BeginForm("UserResults", "User", new AjaxOptions(){...}
私のアクションが呼び出されています!ただし、部分ビューが画面にロードされていません。