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
热点阅读
