Я реализую элемент управления полем со списком MVC kendo в моем приложении MVC. Поле со списком kendo содержит свойство модели, привязанное к свойству value и text соответственно. Свойство text содержит объединенное свойство модели с именем CompanyCodeCompany. Мне в основном нужно извлечь балансовую единицу и назначить ее свойству балансовой единицы в модели просмотра, поскольку мне нужно это значение при сохранении в базе данных. Обратите внимание, что мне нужен как код страны, так и код компании. В настоящее время поле значения поля со списком привязано к CountryCode. В настоящее время поле со списком заполняется с использованием модели представления SalesOrganisation, а основная форма публикует данные с использованием модели представления newrequest. Я попробовал свойство CompanyCodeCompany в новой модели просмотра запроса. Но, похоже, это тоже работает. Я понимаю, что этот фрагмент кода в combo @ (Html.Kendo (). ComboBoxFor (model => model.CountryCode) будет связывать только код страны. Идеальным способом было бы получить компанию значение кода от сбытовой организации и присвоить его новой модели просмотра запроса прямо в razor.
Я не уверен, какой подход использовать для получения значения кода компании.
<div class="form-group">
@Html.LabelFor(model => model.Company, htmlAttributes: new { @class = "control-label col-md-4" })
<div class="col-md-8">
<div class="editor-field">
@(Html.Kendo().ComboBoxFor(model => model.CountryCode)
// .Name("SalesOrganisation")
.HtmlAttributes(new { style = "width:100%" })
.DataTextField("CompanyCodeCompany")
.DataValueField("CountryCode")
.Filter("contains")
.MinLength(3)
.Value(@user.DefaultCountryCode)
.DataSource(dataSource => dataSource
.Read(read => read.Action("RequestHeader_SalesOrganisation", "Request").Type(HttpVerbs.Post))
.ServerFiltering(true)
)
)
</div>
@Html.ValidationMessageFor(model => model.Company, "", new { @class = "text-danger" })
</div>
</div>
Модель представления сбытовой организации
public class SalesOrganisationViewModel
{
public string CountryCode { get; set; }
public string CompanyCode { get; set; }
[Display(Name = "Sales Organisation")]
public string Company { get; set; }
public string CompanyCodeCompany
{
get
{
return CompanyCode + " - " + Company;
}
}
}
NewRequest ViewModel
public class NewRequestViewModel
{
private string name;
[Display(Name = "Request Id")]
public int RequestID { get; set; }
public int CustomerMasterDataId { get; set; }
[Display(Name = "Customer Number")]
public int CustomerNumber { get; set; }
[Display(Name = "Customer Name")]
public string Name1 { get; set; }
[Display(Name = "Customer Group")]
public string CustomerGroup { get; set; }
public string CountryCode { get; set; }
public string CompanyCodeCompany { get; set; }
}