Передача модели из родительского представления в частичное представление (MVC 5) - PullRequest
0 голосов
/ 07 августа 2020

У меня есть представление с моделью, и внутри этого представления я вызываю частичное представление. В настоящее время я действительно могу получить доступ к модели изнутри частичного представления без передачи каких-либо параметров, а из того, что я читал в Интернете, это невозможно. Везде, где я вижу, говорят, что нужно передать параметр модели при вызове частичного представления. Итак, мой вопрос: должно ли это работать? Может ли частичное представление получить доступ ко всему напрямую из родительского представления?

Я объявляю модель в родительском представлении следующим образом:

@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)

1 Ответ

0 голосов
/ 10 августа 2020

// Родительское представление // index.cs html

@model  WebApplication5.Models.Student
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@Html.Partial("_SampleTest", Model)

// Частичное представление // _SampleTest.cs html

@model WebApplication5.Models.Student
<h1>@Model.ID</h1>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...