複数の editorfor/textboxfors を持つビューがあります
<% using(Html.BeginForm("New", "Controller", FormMethod.Post)) {%>
<%: Html.ValidationSummary(false) %>
<div>Address</div>
<div><%: Html.EditorFor(model => model.Address)</div>
<div>Zip Code</div>
<div><%: Html.EditorFor(model => model.Zip)</div>
<div>Total Mats</div>
<div><%: Html.EditorFor(model => model.TotalMats)</div>
<input type="image" src="<%: Url.Content("~/Content/Images/submit.png") %>" name="Submit" />
<% } %>
アクション:
public ActionResult Edit(int Id, FormCOllecion) {
Event event = context.Event.FirstOrDefault(e => e.Id == Id);
if (TryUpdateModel(event) {
context.SaveChanges;
return RedirectToAction("Index", "Controller", new {value = Id});
}
return View(event);
}
モデル:
[Bind(Include="Name,Date")]
public class Event
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime Date { get; set; }
public int Participants { get; set; }
public int TotalMats { get; set; }
}
したがって、最初の 2 つの EditorFor は文字列ですが、最後のものは (モデル上で) int です。それは私が気づいたことの一つです。関連性があるかどうかはわかりません。しかし、送信を押すたびに、formcollection は TotalMats フィールドに値があることを示します。ただし、TryUpdateModel を通過すると、モデルのプロパティは更新されません。足りないものはありますか?int 型のプロパティを使用している私のページのいくつかでは、そのようになっています。FormCollection["key"] を手動で取得する必要がありましたが、整数以外の値が爆発しないようにするためだけに、追加の検証を行う必要があります。