asp.net mvc: как передать анонимный тип в UserController? - PullRequest
0 голосов
/ 21 апреля 2009

Я попробовал следующее, но не работает:

<%Html.RenderPartial("userControl",new {personID=Model.ID, name="SomeName"});%>

В пользовательском контроле у ​​меня есть скрытое поле в форме ajax, которому я назначаю personID. Он не будет компилироваться, скрытый идентификатор не распознается.

Ответы [ 2 ]

1 голос
/ 21 апреля 2009

Я не уверен, почему вы хотите это сделать, но вот как (строго тип Модель гораздо лучше):

<%
    ViewData["PersonID"] = Model.ID;
    ViewData["Name"] = "SomeName";
    Response.Write(
        Html.RenderPartial("userControl"));
%>

OR

Если вы просто сделаете это:

<%=Html.RenderPartial("userControl")%>

и если ваш "userControl" также строго напечатан, он должен иметь возможность прочитать "Model.ID"

1 голос
/ 21 апреля 2009

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

RouteValueDictionary, вероятно, самый простой. Создайте его экземпляр, передав модель, а затем используйте его оператор индекса для запроса значений.

Например:

<%
    var modelDictionary = new RouteValueDictionary(Model);
%>
<input type="hidden" name="personID" value="<%= modelDictionary["personID"] %>" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...