私は MVC3 が初めてで、2 日間読んだ後、自分が間違っていることを見つけることができません。シナリオは次のとおりです。
私は強く型付けされたビューを持っています:
<%@ Page Title="" Language="C#"
MasterPageFile="~/Views/Shared/NestedMasterPage.Master"
Inherits="System.Web.Mvc.ViewPage<AdminToolMVC.Models.PageModels.MembershipVM>" %>
<% using (Html.BeginForm("UpdateUser", "Admin"))
{ %>
<%: Html.CheckBoxFor(m => m.Tab6VM.Programs[0].Selected,
new { id = "prog1" })%>
<%: Model.Tab6VM.Programs[0].Description %></br>
<%: Html.CheckBoxFor(m => m.Tab6VM.Programs[1].Selected,
new { id = "prog2" })%>
<%: Model.Tab6VM.Programs[1].Description %></br>
<%: Html.CheckBoxFor(m => m.Tab6VM.Programs[2].Selected,
new { id = "prog3" })%>
<%: Model.Tab6VM.Programs[2].Description %></br>
<%: Html.CheckBoxFor(m => m.Tab6VM.Programs[3].Selected,
new { id = "prog4" })%>
<%: Model.Tab6VM.Programs[3].Description %></br>
<input type="submit" id="btnUpdate" value="Update" />
<%} %>
私の管理コントローラーで:
public ActionResult Index()
{
//return some view
}
[HttpPost]
public ActionResult UpdateUser(MembershipVM pageModel)
{
UserAdminDW dataWriter;
Models.PageModels.MembershipVM =
new Models.PageModels.MembershipViewModel();
try
{
model = StateHelper.MEMBERSHIP;
}
catch (Exception e)
{
return RedirectToAction("SessionExpired", "Error");
}
}
強く型付けされたビュー ページは、ユーザーがフォーム内で変更しているデータを AdminController クラスの UpdateUser メソッドに送信する必要があるという印象を受けました。
しかし、代わりに、「このオブジェクトにはパラメーターなしのコンストラクターが定義されていません」というメッセージが表示されます。エラー。
ビュー内からコントローラー呼び出しにパラメーターを追加しようとしましたが、コントローラーに渡されるページ モデルが null です。私がやりたいことは、ユーザー データをページに表示した後、ユーザーが情報の一部を更新し、それをコントローラーに送り返して、データベースに保存できるようにすることだけです。私は何が欠けていますか?私は Razor エンジンを使用しておらず、従来の MVC3 のみを使用しています。助けてくれてありがとう。