1
我有一個使用強類型的ViewData類似這樣的一個觀點:MVC強類型的可視數據與陣列
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");
}
和View是這樣的:
<%@ 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(),並在視圖中使用它,我看不到我的數據在TextBoxes中。
有趣的是,如果我將數據輸入到文本框中,那麼它將填充到Post控制器中返回的MyViewData中。
我在做什麼錯?這是否修復了MVC的更高版本?我覺得我有RC 1
基思
更新1
這
<%= Html.TextBox("DataId")%>
的作品就好了。我想我的問題是,應該如此
<%= Html.TextBox("SubData[0].Note")%>
以同樣的方式工作?
的 <%= Html.TextBox( 「數據ID」,Model.DataId)%> 作品就好作爲 <%= Html.TextBox( 「數據ID」)% > 我只是希望 <%= Html.TextBox(「SubData [0] .Note」)%> 以同樣的方式工作。我調試到MVC源代碼,發現失敗,但我不知道.NET足以知道它是否應該工作。 – 2009-04-24 18:30:48