Asp.net mvc 在将模型数据从视图传递到控制器时只获取空值
我刚刚用MVC.NET framework创建了一个组合模型,并将其从视图传递到控制器,只得到空值: 型号:Asp.net mvc 在将模型数据从视图传递到控制器时只获取空值,asp.net-mvc,Asp.net Mvc,我刚刚用MVC.NET framework创建了一个组合模型,并将其从视图传递到控制器,只得到空值: 型号: namespace MyApp.Models { public class ModelX { public String attributeX { set; get; } } } namespace MyApp.Models { public class ModelY { public String attribu
namespace MyApp.Models
{
public class ModelX
{
public String attributeX { set; get; }
}
}
namespace MyApp.Models
{
public class ModelY
{
public String attributeY { set; get; }
}
}
namespace MyApp.Models
{
public class MyComposedModel
{
public ModelX SubModel1 { set; get; }
public ModelY SubModel2 { set; get; }
}
}
CreateView:
@model Repo.Models.MyComposedModel
@{
ViewBag.Title = "Create";
}
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.SubModel1.attributeX, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.SubModel1.attributeX, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.SubModel1.attributeX, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.SubModel2.attributeY, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.SubModel2.attributeY, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.SubModel2.attributeY, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
请你帮我找出我的错误所在。对不起,我是新手。我希望我没有以完全错误的方式做这件事。最好的问候和感谢提前 试试这个
namespace MyApp.Models
{
public class MyComposedModel
{
public MyComposedModel()
{
SubModel1 = new ModelX();
SubModel2 = new ModelY();
}
public ModelX SubModel1 { set; get; }
public ModelY SubModel2 { set; get; }
}
}
如果是MVC,则无法自动初始化这些子模型。您显示的代码工作正常。不要接受与您的问题无关的答案!谢谢但这并不能完全帮助我。在我得到控制器类的“modX.attributeX=MCM.SubModel1.attributeX;”行中的错误之前。现在我在“db.SaveChanges();”行中得到了DbUpdateException,这仍然是因为数据库列定义中不允许使用我的attributeX的null值。知道吗?你的“MCM.SubModel1.attributeX”现在有值了吗?没有:(能否附上“HttpContext.Request.Form”所包含内容的屏幕截图?对不起,在哪里可以找到HttpContext.Request.Form?
namespace MyApp.Models
{
public class MyComposedModel
{
public MyComposedModel()
{
SubModel1 = new ModelX();
SubModel2 = new ModelY();
}
public ModelX SubModel1 { set; get; }
public ModelY SubModel2 { set; get; }
}
}