1

複数の 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"] を手動で取得する必要がありましたが、整数以外の値が爆発しないようにするためだけに、追加の検証を行う必要があります。

4

1 に答える 1

1

あなたの問題ではありませんBindAttributeか?

http://msdn.microsoft.com/en-us/library/system.web.mvc.bindattribute.include

ドキュメントによると、Includeリストにリストされているプロパティのみがバインド/更新されます。あなたintsはリストに載っていません。

于 2012-08-01T13:21:36.823 に答える