2009-04-24 5 views
1

I持ってこれに類似強く型付けされたViewDataを使用するビュー:MVCは強く配列でのViewDataを入力

namespace Site.web2.Models 
{ 
    public class MySubData 
    { 
     public string Note { get; set; } 
     public bool IsValid { get; set; } 
    } 
    public class MyViewData 
    { 
     public int DataId { get; set;} 
     public List<MySubData> SubData { get; set; } 

     public MyViewData() 
     { 
     } 

     public void LoadDummyData() 
     { 
      DataId = 42; 
      SubData = new List<MySubData>(); 
      SubData.Add(new MySubData() { Note = "Item 1" }); 
      SubData.Add(new MySubData() { Note = "Item 2" }); 
     } 
    } 
} 

コントローラー:

[AcceptVerbs(HttpVerbs.Get)] 
public ActionResult Test1() 
{ 
    Site.web2.Models.MyViewData data = new Site.web2.Models.MyViewData(); 
    data.LoadDummyData(); 
    return View(data); 
} 

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Test1(Site.web2.Models.MyViewData data) 
{ 
    return RedirectToAction("Index"); 
} 

とビューは、このようなものです:

<%@ Page Title="" Language="C#" MasterPageFile="~/Content/Site.Master" 
    Inherits="System.Web.Mvc.ViewPage<Site.web2.Models.MyViewData>" 
%> 
<%= Html.BeginForm<HomeController>(c => c.Test1(null)) %> 
<p>Id:</p> 
<p><%= Html.TextBox("DataId")%></p> 
<p>Note 1:</p> 
<p><%= Html.TextBox("SubData[0].Note")%></p> 
<p>Note 2:</p> 
<p><%= Html.TextBox("SubData[1].Note")%></p> 

<input type="submit" value="Submit" /> 
<% Html.EndForm(); %> 

私はMyViewDataを作成し、LoadDummyData()を呼び出し、それをビューで使用すると、テキストボックスにデータが表示されません。

面白いことに、テキストボックスにデータを入力すると、Postコントローラの返されたMyViewDataにデータが取り込まれます。

私は間違っていますか?これはMVCのそれ以降のバージョンで修正されましたか?私はRC 1.

キース

アップデート1

この

<%= Html.TextBox("DataId")%> 

作品だけで罰金を持っていると思います。私は私の質問は、これは、

<%= Html.TextBox("SubData[0].Note")%> 

同様に動作すると思いますか?

答えて

1

これを試してみてください:

<p>Id:</p> 
<p><%= Html.TextBox("DataId", Model.DataId)%></p> 
<p>Note 1:</p> 
<p><%= Html.TextBox("SubData[0].Note", Model.SubData[0].Note)%></p> 
<p>Note 2:</p> 
<p><%= Html.TextBox("SubData[1].Note", Model.SubData[1].Note)%></p> 
+0

<%= Html.TextBox( "データID"、Model.DataId)%> 作品だけで結構 として、<%= Html.TextBox( "DATAID")%を> <%= Html.TextBox( "SubData [0] .Note")%> は同じように動作することを期待していました。私はMVCソースにデバッグして失敗を見つけましたが、.NETがうまくいくかどうかを知るには十分分かりません。 –

関連する問題