【发布时间】:2016-07-11 20:51:45
【问题描述】:
最小代码结构
我有两个 ViewModel 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' 类型,但需要是 'appointments' 类型
请建议我可能做错了什么。
【问题讨论】:
-
你的
[HttpGet]控制器是什么样子的? -
感谢您的所有回答。实际上问题是由于操作中的附加“命令”参数。我包含它以跟踪在视图中单击的按钮。删除后一切正常。但现在我试图弄清楚如何跟踪单击的按钮。我应该从 value 中发送一个隐藏的 value 吗?
标签: c# asp.net razor mvvm asp.net-mvc-5