Asp.net mvc 带数组的MVC强类型viewdata
我有一个使用强类型ViewData的视图,类似于:Asp.net mvc 带数组的MVC强类型viewdata,asp.net-mvc,viewdata,Asp.net Mvc,Viewdata,我有一个使用强类型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;}
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" });
}
}
}
视图是这样的:
<%@ 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(); %>
c、 Test1(null))%>
身份证:
注1:
注2:
好的,如果我创建一个MyViewData,调用LoadDummyData(),并在视图中使用它,那么在文本框中就看不到我的数据
有趣的是,如果我在文本框中输入数据,就会填充到Post控制器中返回的MyViewData中
我做错了什么?这在MVC的更高版本中得到了修复吗?我想我有RC 1
基思
更新1
这个
很好用。我想我的问题是,这个
<%= Html.TextBox("SubData[0].Note")%>
用同样的方法工作?试试这个:
<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>
Id:
注1:
注2:
试试这个:
<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>
Id:
注1:
注2:
效果很好,因为我只是希望它能以同样的方式工作。我在MVC源代码中进行了调试,发现了故障,但我不太了解.NET,不知道它是否应该工作。它工作得很好,因为我只是希望它能以同样的方式工作。我在MVC源代码中进行了调试,发现了故障,但我对.NET的了解还不够透彻,不知道它是否应该工作。
<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>