2010-09-22 2 views

ответ

7

Вы можете попробовать ViewContext:

<% =ViewContext.RouteData.Values["id"] %> 

Вы все еще можете получить его с помощью ViewData [ "ID"], если вы поместите его внутри viewdata в контроллер, но если вы сделаете это, вы можете также положить его в модель.

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

+0

+1 для кода запаха –

+0

Я искал это – Lucas

-1

Вы можете передать идентификатор в поле зрения через ViewData

ViewData["id"] = id; 

Затем в окне вы можете вызвать эту ViewData["id"], чтобы вытащить значение, которое вы из

Пол

+0

Мне нравится, как я получил голосу за этот ответ, но ответ выше меня точно такой же и не получил ни единого голоса. Я не возражаю против голосов, но даю повод для того, чтобы я мог учиться у него. – stack72

+0

Я не спускал вниз, но я бы предположил, что это потому, что вы не назначили что-либо «id». –

0

Вы можете использовать RouteData, но вы не должны.

Вся структура MVC говорит, что запрос будет перенаправлен на конкретное действие на конкретном контроллере. Затем контроллер вернет представление, и представление больше не будет обращаться к параметрам url.

Если вы хотите получить доступ к id, вы должны поместить его в модель представления или просмотреть данные и получить доступ к этому виду.

public ActionResult YourAction(int id) 
{ 
    ViewData["id"] = id; 

    return View("MyView"); 
} 

, а затем в представлении ...

<%= ViewData["id"] %> 
+0

«Вы не можете». : неверно, вы можете получить к нему доступ с помощью ViewContext.RouteData. Но это немного вонючий :) – mathieu

+0

Да, хорошо, но вы определенно не должны. –

Смежные вопросы