我正努力让自己的模板与模特一起工作......
所以,我有3个模型
Account
has_one -> Company
has_many -> Individuals -> has_one Document
因此,该帐户可以包含一个公司和许多个人,每个人都有一个文档。
提交表格时,我有以下行动
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult OpenAnAccount(string area, [Bind(Exclude = "Id")] Website.Model.Account account)
{
var db = new DB();
var type = new int();
switch (area)
{
case "business": type = 1; break;
case "private": type = 2; break;
}
if (ModelState.IsValid)
{
try
{
account.Type = type;
db.Accounts.InsertOnSubmit(account);
db.SubmitChanges();
return View("OpenAnAccount/ThankYou");
}
catch
{
return View();
}
}
else
{
return View();
}
}
在我的形式上简单的事情,如
%label{for='companyName'} <em>*</em>Company Name
%input{class='required' id='companyName' name='Company.Name' type='text'}
%label{for='companyTradeName'}Trading As (if Different)
%input{id='companyTradeName' name='Company.Trade' type='text'}
%label{for='companyRegistrationNumber'} <em>*</em>Company Registration Number
%input{class='required' id='companyRegistrationNumber' name='Company.Registration' type='text'}
%label{for='vatNumber'}VAT Number (if Applicable)
%input{id='vatNumber' name='Company.VAT' type='text'}
这意味着我将字段命名为Company.Name,Company.Registration等... 对于我这样做的人
%label{for ='firstName_0'} <em>*</em>First Name
%input#firstName_0.required.firstName{ name='Individuals[0].FirstName' type='text'}
%label{for='middleName_0'} Middle Name
%input#middleName_0{ name='Individuals[0].MiddleName' type='text'}
%label{for='lastName_0'} <em>*</em>Last Name
%input#lastName_0.required{ name='Individuals[0].LastName' type='text'}
as Individuals [0] .FirstName,Individuals [0] .LastName等
但正在发生的事情是,我确实在公司内部开设了帐户,但它并不适用于个人......它没有对数据库做任何事情?
有人可以帮我吗?
我已经检查了一些像http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx这样的资源,但我认为它不适用于我的情况,因为它没有改变任何东西。
提前致谢
答案 0 :(得分:1)
这个答案似乎是一种直截了当的方式: ASP.Net MVC - model with collection not populating on postback 如果有人需要它
答案 1 :(得分:0)
我提出了一个可能的解决方案,看看这个并告诉我你的想法...