2012-06-08 3 views
1

У меня есть 2 модели, ComanyModel и Address Model. В модели компании есть AddressId, который соединяет две таблицы в БД. Я хочу зарегистрировать компанию и сохранить информацию в базе данных в двух отдельных таблицах. Теперь я хочу, чтобы пользователь вводил информацию о компании и адрес на той же странице, но не знаю, как это сделать. Я могу сделать это в ASP, но теперь я очень новичок в MVC3.Несколько моделей в одном контроллере в ASP.NET MVC3

Просьба сообщить мне, как я могу это сделать.

Вот мои две модели класса:

общественного класса CompanyModel

{ 

    public Guid AddressId { get; set; } 
    public string CompanyEmailAddress { get; set; } 
    public string DirectorName { get; set; } 
    public Guid Id { get; set; } 
    public string Name { get; set; } 
    public int RegNo { get; set; } 
    public string VatNo { get; set; } 

} 

общественного класса AddressModel

{ 

    public string City { get; set; } 
    public string Code { get; set; } 
    public Guid Id { get; set; } 
    public string Line1 { get; set; } 
    public string Line2 { get; set; } 
    public string Suburb { get; set; } 
} 
+0

Вы используете Entity FrameWork? – jacqijvv

+0

Вот как я сохраняю свои данные в db. с помощью FusionXC.Data; IDataOperations ops = DataSession.GetDataOperations (null); Список deptModel = новый Список (); ops.Create (deptModel) .Into («Департамент»). Значения (deptModel); ops.Commit(); –

+0

У меня есть бизнес-уровень, уровень данных и слой пользовательского интерфейса. В бизнес-слое у меня есть папка моделей с классами, идентичными тем, которые содержатся в БД, и их использование для сохранения моих данных. –

ответ

0

Вам нужен другой класс, как этот

public class CompanyAddressModel 
{ 
public CompanyModel Company { get; set; } 
public AddressModel Address { get; set; } 
} 
6

Вы должны создать один ViewModel как для таблицы

, например:

public class nameViewModel 
{ 
    public Company Company { get; set; } 
    public Address Address { get; set; } 
} 

, а затем в View

@Html.LabelFor(model => model.Company.Name) 

@Html.EditorFor(model => model.Company.Name) 
@Html.ValidationMessageFor(model => model.Company.Name) 


@Html.LabelFor(model => model.Address.Name) 

@Html.EditorFor(model => model.Address.Name) 
@Html.ValidationMessageFor(model => model.Address.Name) 
+0

Как создать метод создания ActionResult в контроллере? ? –

+0

[HttpPost] public ActionResult ActionName (nameViewModel model) { // Действия } –

0

Как Мурат упоминалось ранее вы можете создать новый ViewModel, а затем получить доступ к экземплярам классов с @Model.Company и @Model.Address. Если вы ленивы (как и я), вы можете создавать строго типизированные представления из каждого из классов, а затем объединять представления в один. Или вы можете создать частичные виды из классов и получить их по @Html.Action("CreateCompany", Model.Company) или @Html.Partial("CompanyView", Model.Company)

Смежные вопросы