Sat*_*hya 10 c# asp.net-mvc asp.net-mvc-3
我正在开发一个应用程序,我需要将username的值从控制器传递给视图.我尝试了http://msdn.microsoft.com/en-us/library/system.web.mvc.viewdatadictionary.aspx中给出的ViewData.
我在控制器中的代码是
public ActionResult Index(string UserName, string Password)
{
ViewData["UserName"] = UserName;
return View();
}
Run Code Online (Sandbox Code Playgroud)
从其他表单获取用户名和密码.
而视图中的代码是
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<%= ViewData["UserName"] %>
Run Code Online (Sandbox Code Playgroud)
但是当我运行此代码时,显示屏显示<%= ViewData ["UserName"]%>而不是实际的用户名,例如"XYZ".
我该如何显示实际的UserName?
非常感谢您的帮助.
Not*_*ple 12
你在这里使用的是razor语法,但是你正试图将它与旧的asp.net语法混合使用
@ViewData["UserName"]
Run Code Online (Sandbox Code Playgroud)
代替
此外,通常您不会使用视图包将数据传递给视图.标准做法是创建一个模型(标准类),其中包含View(页面)所需的所有数据位,然后将该模型传递给控制器的视图(返回View(myModel);)
为此,您还需要声明视图中使用的模型类型
@model Full.Namespace.To.Your.MyModel
Run Code Online (Sandbox Code Playgroud)
阅读http://msdn.microsoft.com/en-us/gg618479获取基本的mvc模型教程
您似乎正在使用Razor View Engine而不是Web窗体视图引擎.请尝试以下方法:
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@ViewData["UserName"]
Run Code Online (Sandbox Code Playgroud)