Две модели в одном частичном представлении на C # MVC 4.5 - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь добавить данные из частичного представления с именем GetEmailingSystem.cshtml.Вот проблеск того, что в нем:

<div class="form-double">
    <input type="text" value="@Model.FirstName" id="FirstName" name="FirstName" placeholder="Your name" class="form-control" required="required">
    <input type="text" value="@Model.LastName" id="LastName" name="LastName" placeholder="Your surname" class="form-control" required="required">
</div>

Есть Index.cshtml, к которому привязано это частичное представление, и он прикреплен с помощью кода, показанного ниже:

<div class="col-xs-12 col-md-8">
    @Html.Action("GetEmailingSystem", "Home")
</div>

Мой контроллер находится сследующий код:

public ActionResult GetEmailingSystem()
{
  TelecomClientCompanyViewModel _emailSystem = new TelecomClientCompanyViewModel();
    _emailSystem.telecomClient = GetTelecomClientModel();
    _emailSystem.telecomClientCompanies = GetTelecomClientCompanyModel();
    return View(_emailSystem);
}
public TelecomClient GetTelecomClientModel()
{
    TelecomClient _teleModel = new TelecomClient();
    return _teleModel;
}
public TelecomClientCompany GetTelecomClientCompanyModel()
{
   TelecomClientCompany _telecomClientCompany = new TelecomClientCompany();
   return _telecomClientCompany;
}

TelecomClientCompanyViewModel is a ViewModel with the code below:

    public class TelecomClientCompanyViewModel
    {
         public TelecomClient telecomClient { get; set; }
         public TelecomClientCompany telecomClientCompanies { get; set; }
    }

TelecomClient - одна модель с этим кодом:

public class TelecomClient
{
    public int id { get; set; }
    public string Title { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string UnitNo { get; set; }
    public string UnitStreetName { get; set; }
    public string ComplexNo { get; set; }
    public string ComplexName { get; set; }
    public string StreetName { get; set; }
    public string Suburb { get; set; }
    public string City { get; set; }
    public string Province { get; set; }
    public string Country { get; set; }
    public string CellNo { get; set; }
    public string TelephoneNo { get; set; }
    public string EmailAddress { get; set; }
    public string Website { get; set; }
    public int companyId { get; set; }
    public string PositionHeld { get; set; }
    public string OfficeLocation { get; set; }
    public DateTime DateAdded { get; set; }
    public string UpdatedBy { get; set; }
    public DateTime DateUpdated { get; set; }
    public int Active { get; set; }
}

Где TelecomClientCompany содержит этот код:

public class TelecomClientCompany
{
    public int id { get; set; }
    public string CompanyName { get; set; }
    public string VATNo { get; set; }
    public string CompanyUnitNo { get; set; }
    public string CompanyUnitStreetName { get; set; }
    public string CompanyComplexNo { get; set; }
    public string CompanyComplexName { get; set; }
    public string CompanyStreetName { get; set; }
    public string CompanySuburb { get; set; }
    public string CompanyCity { get; set; }
    public string CompanyProvince { get; set; }
    public string CompanyCountry { get; set; }
    public string CompanyTelephoneNo { get; set; }
    public string NoOfEmployees { get; set; }
    public string CompanyWebsite { get; set; }
    public string CompanyIndustry { get; set; }
}

Пока, яне знаю, что мне не хватает всего этого, так как я продолжаю получать это сообщение об ошибке «Ссылка на объект не установлена ​​на экземпляр объекта».Я надеялся, что с помощью жесткого кодирования данных этот код заработает, и это все, что я вижу в своих онлайн-исследованиях.Но это не то, чего я хочу, я хотел бы иметь возможность вставлять данные через формы в базу данных и получать эти данные из этой базы данных.Поэтому я, очевидно, использую две таблицы, и мне нужно вставить две модели в одном представлении.Может кто-нибудь, пожалуйста, помогите мне с этим, так как я боролся с этим почти неделю.Спасибо вам!

1 Ответ

0 голосов
/ 11 октября 2018
public TelecomClient GetTelecomClientModel()
{
    TelecomClient _teleModel = new TelecomClient();
    return _teleModel;
}
public TelecomClientCompany GetTelecomClientCompanyModel()
{
   TelecomClientCompany _telecomClientCompany = new TelecomClientCompany();
   return _telecomClientCompany;
}

Эти 2 метода вернут «пустые» объекты для TelecomClient и TelecomClientCompany.Поскольку внутри этих классов имеется множество строк, которые являются ссылочными типами, все они по умолчанию будут иметь значение null, поскольку вы нигде не присваиваете им значения, которые мы можем видеть в предоставленном вами коде.По вашему мнению, вы обращаетесь к таким свойствам, как FirstName и LastName, которые имеют значение null.

Поскольку мы не видим весь ваш код, я предполагаю, что именно здесь ваша "Ссылка на объект не установлена ​​на экземпляробъект «.исключение выбрасывается.Нет ничего плохого в том, чтобы посылать модель представления, которая представляет собой объединение нескольких связанных или не связанных объектов.Фактически это одна из причин наличия модели представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...