1

我正在努力让自己的表格与我的模型一起工作......

所以,我有 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'}

作为个人[0].FirstName、Individuals[0].LastName等

但是正在发生的事情是,我确实在我的公司生成帐户,但它不适用于个人......它没有对数据库做任何事情?

任何人都可以帮助我吗?

我已经检查了一些资源,例如http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx但我想它在我的情况下不起作用,因为它没有不要改变任何东西。

提前致谢

4

2 回答 2

1

这个答案似乎是一种直接的方法: ASP.Net MVC - model with collection not populating on postback 万一有人需要它

于 2010-01-25T14:21:07.713 回答
0

我提出了一个可能的解决方案,看看这个,然后告诉我你的想法……

http://mooinooi.codeplex.com/

于 2010-03-10T17:14:32.053 回答