RenderPartial не рендеринг внутри div - PullRequest
1 голос
/ 03 апреля 2012

Привет У меня возникли проблемы с пониманием того, как работают MVC 3 и бритва. По сути, у меня есть представление, которое отображается с частичной Html.Render. по сути, я пытаюсь визуализировать содержимое или частичное представление внутри div следующим образом.

<div id="mydiv.id">
@{Html.RenderPartial("_BankAccountGrid", Model.CheckAccounts);}
</div>


@if (Model.Any())
{        

        @{Html.Grid(Model).Columns(c =>
        {
                c.For(a => Html.ActionLink(
                    "Edit",
                    "EditBankAccountDetails",
                    "UserManagement",
                    new { Id = a.Id }, new { id = "modalEdit" }));
                c.For(a => a.AccountName);
                c.For(a => a.AccountNumber);
                c.For(a => a.RoutingNumber);
                c.For(a => a.BankName);
                c.For(a => a.CheckAccountType);
                c.For(a => a.AccountType_Id).Visible(false);
                c.For(a => a.version).Visible(false);
                c.For(a => a.IsDefault).Visible(false);
                c.For(a => a.User_Id).Visible(false);
                c.For(a => a.Id).Visible(false);
            }).Render();
        }      
}

Однако, когда я смотрю на DOM в firebug, таблица ВСЕГДА отображается вне div только в элементе таблицы. Я тоже это попробовал.

@{Html.RenderPartial("_BankAccountGrid", Model.CheckAccounts);}


@if (Model.Any())
{        
    <div id="accounts.grid.div">
        @{Html.Grid(Model).Columns(c =>
        {
                c.For(a => Html.ActionLink(
                    "Edit",
                    "EditBankAccountDetails",
                    "UserManagement",
                    new { Id = a.Id }, new { id = "modalEdit" }));
                c.For(a => a.AccountName);
                c.For(a => a.AccountNumber);
                c.For(a => a.RoutingNumber);
                c.For(a => a.BankName);
                c.For(a => a.CheckAccountType);
                c.For(a => a.AccountType_Id).Visible(false);
                c.For(a => a.version).Visible(false);
                c.For(a => a.IsDefault).Visible(false);
                c.For(a => a.User_Id).Visible(false);
                c.For(a => a.Id).Visible(false);
            }).Render();
        }
    </div>
}

.. но безрезультатно. Я что-то упускаю?

Если я не совсем уверен или вам нужна дополнительная информация, просто спросите, а не проголосуйте.

Ответы [ 2 ]

2 голосов
/ 03 апреля 2012

Html.RenderPartial пишет непосредственно в ответ.Я думаю, что вы хотите здесь Html.Partial.

<div id="mydiv.id">
@Html.Partial("_BankAccountGrid", Model.CheckAccounts)
<div>

См. этот вопрос для более подробной информации

0 голосов
/ 03 апреля 2012

Вы, кажется, используете MvcContrib.Grid.Вы должны были упомянуть об этом в своем вопросе.Сначала убедитесь, что вы загрузили последнюю версию (ту, что была сделана для ASP.NET MVC 3, потому что старая версия для ASP.NET MVC 2 не работает с Razor).

Затем попробуйте так:

@if (Model.Any())
{        
    @(Html
        .Grid(Model)
        .Columns(c =>
        {
            c.Custom(
                @<text>
                    @Html.ActionLink(
                        "Edit", 
                        "EditBankAccountDetails", 
                        "UserManagement", 
                        new { Id = item.Id }, 
                        new { id = "modalEdit" }
                    )
                 </text>
            ).Named("");

            c.For(a => a.AccountName);
            c.For(a => a.AccountNumber);
            c.For(a => a.RoutingNumber);
            c.For(a => a.BankName);
            c.For(a => a.CheckAccountType);
            c.For(a => a.AccountType_Id).Visible(false);
            c.For(a => a.version).Visible(false);
            c.For(a => a.IsDefault).Visible(false);
            c.For(a => a.User_Id).Visible(false);
            c.For(a => a.Id).Visible(false);
        })
     )
}

Обратите внимание, что я использую столбец Custom для ActionLink и больше не вызываю метод .Render в сетке..

...