asp.net – 模型在表单发布到控制器时始终为NULL
发布时间:2020-12-16 00:09:39 所属栏目:asp.Net 来源:网络整理
导读:每当我提交表单时,传递给控制器??的模型都是NULL.我花了很长时间看这个.我想我在这里缺少一些基本的东西. @model VisitorPortal.Models.ReinviteVisitorModel@using (Html.BeginForm("CreateMeeting","Home",FormMethod.Post,new { @class = "form-horizonta
每当我提交表单时,传递给控制器??的模型都是NULL.我花了很长时间看这个.我想我在这里缺少一些基本的东西.
@model VisitorPortal.Models.ReinviteVisitorModel @using (Html.BeginForm("CreateMeeting","Home",FormMethod.Post,new { @class = "form-horizontal",role = "form" })) { @Html.AntiForgeryToken() <h3>Reinvitation Details</h3> <div>The information entered below will be sent to the visitors email address @Model.Info.Email</div> <hr /> @Html.ValidationSummary("",new { @class = "text-danger" }) <div class="form-group"> @Html.LabelFor(m => m.NewMeeting.Title,new { @class = "col-md-2 control-label" }) <div class="col-md-10"> @Html.TextBoxFor(m => m.NewMeeting.Title,new { @class = "form-control" }) </div> </div> <div class="form-group"> @Html.LabelFor(m => m.NewMeeting.StartTime,new { @class = "col-md-2 control-label" }) <div class="col-md-10"> @Html.TextBoxFor(m => m.NewMeeting.StartTime,new { @class = "datetimepicker form-control" }) </div> </div> <div class="form-group"> @Html.LabelFor(m => m.NewMeeting.EndTime,new { @class = "col-md-2 control-label" }) <div class="col-md-10"> @Html.TextBoxFor(m => m.NewMeeting.EndTime,new { @class = "datetimepicker form-control" }) </div> </div> <div class="form-group"> <div class="col-md-offset-2 col-md-10"> @Html.HiddenFor(m => m.NewMeeting.SubjectId,new { @Value = Model.Info.SubjectId }) <input type="submit" class="btn btn-default" value="Send Invite" /> </div> </div> } 该模型是: public class Meeting { [Key] public int Id { get; set; } public string SubjectId { get; set; } [Required] [Display(Name = "Reason for invitation")] public string Title { get; set; } [Required] [Display(Name = "Start Time")] [DataType(DataType.Time)] public DateTime StartTime { get; set; } [Required] [Display(Name = "End Time")] [DataType(DataType.Time)] public DateTime EndTime { get; set; } public string HostEmail { get; set; } public string HostMobile { get; set; } } public class MeetingsDBContext: DbContext { public DbSet<Meeting> Meetings { get; set; } } public class ReinviteVisitorModel { public Visitor Info; public Meeting NewMeeting; public List<Meeting> Meetings; } Controller的行动是: [HttpPost] [ValidateAntiForgeryToken] public ActionResult CreateMeeting(Meeting meeting) { return RedirectToAction("ReinviteVisitor2",new { visitorId = meeting.SubjectId }); } 我在模型中有字段,例如Id,我期望数据库填充我将在动作CreateMeeting()中编写的内容.是否必须在表单中使用模型中的所有字段? 解决方法
您视图中的模型是typeof ReinviteVisitorModel,这意味着自发布ReinviteVisitorModel以来POST方法的签名必须匹配
[HttpPost] [ValidateAntiForgeryToken] public ActionResult CreateMeeting(ReinviteVisitorModel model) 或者,您可以使用BindAttribute的Prefix属性从您要发布的表单控件的名称中删除NewMeeting前缀. public ActionResult CreateMeeting([Bind(Prefix="NewMeeting")]Meeting model) 附注:从隐藏输入中删除新的{@Value = Model.Info.SubjectId},然后在将模型传递给视图之前在GET方法中设置NewMeeting.SubjectId的值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 对MVC4 Web API性能问题进行故障诊断
- asp.net-mvc-4 – 用于空响应的ASP.NET Web API和状态代码
- asp.net-web-api – ASP.NET WebAPI支持每种方法的媒体类型
- asp.net – Textbox错误的价值
- asp.net – ObjectCache的“Set”和“Add”有什么区别?
- asp.net-core – 在将Swashbuckle用于网络核心web api项目时
- asp.net-mvc – ASP.NET MVC,在使用EF 4时形成auth或自定义
- 构建发布版混合ASP.Net和.Net Standard 2.0项目的SGEN错误解
- asp.net – 不能得到内容的内容,因为内容不是文字
- .net – 从webforms将参数传递给Crystal报表
推荐文章
站长推荐
- asp.net-mvc – 隐藏字段的完整性:Asp.NET mvc
- asp.net-mvc – 使用城堡温莎的实体框架
- asp.net – 如何判断正在查看的网站位置?
- asp.net – window.location更改失败AJAX调用
- ASP.NET MVC 3数据注释:动态添加验证
- asp.net-mvc – 使用数据注释进行自定义验证
- asp.net-mvc-4 – ASP.NET帮助页面默认主页?
- asp.net – $(“#dialog”).parent().appendTo($
- asp.net-mvc – MVC3:使用ActionMethodSelector
- asp.net – 对绑定到自定义通用对象列表的GridVi
热点阅读