Как передать значения из контроллера для просмотра в asp.net? - PullRequest
10 голосов
/ 06 января 2012

Я занимаюсь разработкой приложения, в котором мне нужно передать значение имени пользователя из контроллера в представление. я пробовал ViewData как указано в http://msdn.microsoft.com/en-us/library/system.web.mvc.viewdatadictionary.aspx

Мой код в контроллере

public ActionResult Index(string UserName, string Password)
{
        ViewData["UserName"] = UserName;
        return View();
}

, где имя пользователя и пароль получены из другой формы.

И код в представлении

@{
    ViewBag.Title = "Index";  
}
<h2>Index</h2>
<%= ViewData["UserName"] %>

Но когда я запускаю этот код, на дисплее отображается <% = ViewData ["UserName"]%> вместо действительного имени пользователя, например, "XYZ".

Как отобразить фактическое имя пользователя?

Заранее большое спасибо за помощь.

Ответы [ 3 ]

12 голосов
/ 06 января 2012

Вы используете здесь синтаксис бритвы, но пытаетесь смешать его со старым синтаксисом asp.net, используйте

@ViewData["UserName"] 

вместо

Кроме того, обычно вы не используете сумку вида для передачи данных в вид. Стандартная практика состоит в том, чтобы создать модель (стандартный класс) со всеми битами данных, которые требуется вашему представлению (странице), а затем передать эту модель представлению из вашего контроллера (возврат View (myModel);)

Для этого вам также нужно объявить тип модели, которую вы используете в своем представлении

@model Full.Namespace.To.Your.MyModel

прочитайте http://msdn.microsoft.com/en-us/gg618479 для базового учебника по моделям MVC

6 голосов
/ 06 января 2012

Похоже, что вы используете Razor View Engine, а не Web Forms View Engine.Вместо этого попробуйте следующее:

@{ 
    ViewBag.Title = "Index";   
} 
<h2>Index</h2> 
@ViewData["UserName"]
0 голосов
/ 07 января 2012

ViewBag - это удержание от MVC2.При разработке MVC3 следует использовать строго типизированные ViewModel.

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