У меня есть представление с моделью, и внутри этого представления я вызываю частичное представление. В настоящее время я действительно могу получить доступ к модели изнутри частичного представления без передачи каких-либо параметров, а из того, что я читал в Интернете, это невозможно. Везде, где я вижу, говорят, что нужно передать параметр модели при вызове частичного представления. Итак, мой вопрос: должно ли это работать? Может ли частичное представление получить доступ ко всему напрямую из родительского представления?
Я объявляю модель в родительском представлении следующим образом:
@model ClienteFornecedorDTO
и вызываю такое частичное представление внутри родительского представления :
<div class="form-group">
@Html.LabelFor(model => model.Fornecedor.InscricaoMunicipal, htmlAttributes: new { @class = "control-label col-md-3" })
<div class="col-md-6">
@Html.EditorFor(model => model.Fornecedor.InscricaoMunicipal, new { htmlAttributes = vFormControlHtmlAttributes})
@Html.ValidationMessageFor(model => model.Fornecedor.InscricaoMunicipal, "", new { @class = "text-danger" })
</div>
</div>
@Html.Partial("EstadoCidadeDDL")
Когда я вызываю Модель внутри своего частичного представления, все значения присутствуют:
@{
CidadeDTO cidade = new CidadeDTO();
cidade.IdEstado = ViewBag.EstadoSelectedId != null ? ViewBag.EstadoSelectedId : 0;
bool vCanUpdate = ViewContext.CanUpdate();
object vFormControlHtmlAttributes;
if (ViewContext.Profile().IdentityUser.AppRoles.Any(x => x.SystemTotalAccess == true) || (vCanUpdate && Model.Fornecedor.Tipo != EmpresaFuncao.Cliente))
{
vFormControlHtmlAttributes = new { @class = "form-control", onchange = "CarregaCidades(this.value)" };
}
else
{
vFormControlHtmlAttributes = new { @class = "form-control", disabled = "true" };
}
}
Но из того, что я мог прочитать в Интернете, я должен делать что-то вроде этого при вызове моего частичного просмотра:
@Html.Partial("EstadoCidadeDDL", Model)