最小限のコード構造MVC5:Viewは正しいビューモデルを提出していない
私は、コントローラ内のアクションメソッドがどのように見える2つのviewmodels cmsViewModel
とappointments
public partial class cmsViewModel
{
public string rows { get; set; }
public DateTime appt_date_time { get; set; }
public int appt_id { get; set; }
public List<community_meeting_schedule> lst { get; set; }
public cmsViewModel()
{
rows = null;
appt_date_time = DateTime.Today;
lst = null;
appt_id = -1;
}
}
public partial class appointments
{
public int appt_client_id { get; set; }
public int customer_id { get; set; }
[Key]
public int appt_id { get; set; }
public DateTime appt_date_time { get; set; }
public DateTime time_stamp { get; set; }
}
を持っている:
[HttpPost]
public ActionResult CMSConfim(cmsViewModel model, string Command)
{
return View("CMSchedule", model);
}
見ますCMSConfim.cshtml
は次のようになります。
@model Scheduler_MVC.Models.cmsViewModel
@using (Html.BeginForm("CMSConfim", "appointments", FormMethod.Post))
{
@Html.HiddenFor(model => model.appt_id, new { id = "appt_id" })
@Html.HiddenFor(model => model.appt_client_id, new { id = "appt_client_id" })
@Html.HiddenFor(model => model.appt_date_time)
@Html.HiddenFor(model => model.appt_status)
@Html.HiddenFor(model => model.appt_type)
@Html.HiddenFor(model => model.lst)
<input type="submit" value="Back" id="backBtn" class="btn btn-default" />
<input type="button" value="Submit" id="submitBtn" class="btn btn-default" style="display:inline-block;" />
}
フォームの表示フィールドに正しい値を表示できると付け加えたいと思います。エラーは、フォームの送信中に表示されます。
エラー今
私はBack
てフォームを送信します。次のエラーが表示されます。 辞書のモデルのタイプはです。「cmsViewModel」ですが、必要なタイプはです。「予定」 私が間違っている可能性があることをお勧めします。
あなたの '[HttpGet]コントローラはどのように見えますか? – Gareth
ありがとうございました。実際問題は、アクションの追加の「コマンド」引数が原因でした。ビューにクリックされたボタンを追跡するためにそれを含めました。それを取り除いた後はすべて正常に動作しますが、今はクリックされたボタンを追跡する方法を理解しようとしています。私は価値から隠された価値を送るべきですか? –