理解问题:MVC 2 asp.net VC2010:哪里发生的“数据绑定”?
1) “X_IndexViewModel” 类
public class X_IndexViewModel
{
public List<SelectListItem> CheckBox_1 { get; set; }
...
}
2)XController.cs
public ActionResult Index()
{
X_IndexViewModel viewModel = new X_IndexViewModel
{
CheckBox_1 = new List<SelectListItem>()
{
new SelectListItem
{
Selected = true,
Text = "some text",
Value ="another text"
}
},
...
}
return View(viewModel);
}
3)网站 “的Index.aspx” 它继承 “X_IndexViewModel”
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Test.ViewModels.X_IndexViewModel>" %>
...
<!-- rendering a checkbox -->
<% foreach (var item in Model.CheckBox_1) { %>
<%: Html.CheckBox("CheckBox_1", item.Selected, new {id="CheckBox_1"}) %>
<label for="CheckBox_1<%: item.Text %>"><%: item.Text %></label>
<% } %>
...
4)“真正的”模型类“XModel”包含强制TA布尔来存储信息,用户是否选中复选框或不...
public class XModel
{
public bool CheckBox_1 {get; set;}
...
}
5)和“XController.cs”
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(XModel model, FormCollection Form)
我很惊讶的是,POST的参数model
对于该复选框,ActionResult方法充满了true
或false
。
我不解地问:
我用的X_IndexViewModel
类 (X_IndexViewModel viewModel = new X_IndexViewModel { ... }
) 实例具有值(如选择= true或false等),以填补复选框。
然后是通过使用viewModel呈现的网站(其中viewModel是X_IndexViewModel类的实例)。 这工作正常,因为该网站继承X_IndexViwModel
。
当用户提交表单时,将使用[AcceptVerbs(HttpVerbs.Post)]
ActionResult
方法获取的此事件(事件事件)和XModel
类属性填充复选框值。
所以我的问题是:
在什么地方了“X_IndexViewModel”和“XModel”之间的结合发生的呢?
其中的声明说:在X_IndexViewModel
CheckBox1
返回的值应该存储在XModel
财产CheckBox1
?
非常感谢你!!!!!我现在明白了!抱歉我的英语不好;-) – user415876 2010-08-13 05:14:35