应用程序视图:
@model Models.ApplicationModel
@using (Html.BeginForm())
{
@Html.HiddenFor(m => m.SectionID);
@Html.HiddenFor(m => m.CurrentSectionName);
<div class="section" id="Terms">
@Html.EditorFor(m => m.Term)
</div>
<div class="section" id="User">
@Html.EditorFor(m => m.User)
</div>
<input type="submit" value="Save" />
}
@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript">
$(function () {
$('form').click(function () {
if ($(this).valid()) {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (result) {
debugger;
}
});
}
return false;
});
});
</script>
应用程序模型:
public class ApplicationModel
{
public int SectionID;
public Term Term;
public User User;
public string CurrentSectionName;
}
应用程序控制器:
public ActionResult Save(ApplicationModel ApplicationModel, FormCollection fc)
{
return PartialView("Application", ApplicationModel);
}
/ EditorTemplates /期限:
@model Data.Term
<fieldset>
<legend>Term</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Type)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Type)
@Html.ValidationMessageFor(model => model.Type)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Length)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Length)
@Html.ValidationMessageFor(model => model.Length)
</div>
</fieldset>
/ EditorTemplates /用户:
@model Data.User
<fieldset>
<legend>User</legend>
<div class="editor-label">
@Html.LabelFor(model => model.FirstName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.FirstName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.LastName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.LastName)
@Html.ValidationMessageFor(model => model.LastName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.MiddleInitial)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.MiddleInitial)
@Html.ValidationMessageFor(model => model.MiddleInitial)
</div>
</fieldset>
单击“保存”按钮时,在Application Controller中,只有FormCollection具有键(其中21个)。该模型不受数据约束。
我在这里做错了什么?
答案 0 :(得分:2)
试试这个,添加{get;设置;}到您的模型
public class ApplicationModel
{
public int SectionID {get; set;}
public Term Term {get; set;}
public User User {get; set;}
public string CurrentSectionName {get; set;}
}
答案 1 :(得分:0)
您可能还需要检查模型属性上的访问修饰符。我遇到了同样的情况,当我在我的房产上设置时,他们受到保护而不是公开。感谢你让Mate指出我正确的方向。