如何访问在Controller中创建的视图中的变量?

时间:2011-03-03 13:21:36

标签: asp.net-mvc-3 razor

如何访问在Controller中创建的视图中的变量?

3 个答案:

答案 0 :(得分:9)

将变量放入用于View的模型中

或使用ViewBag变量 - 例如来自http://weblogs.asp.net/hajan/archive/2010/12/11/viewbag-dynamic-in-asp-net-mvc-3-rc-2.aspx

public ActionResult Index()
{
    List<string> colors = new List<string>();
    colors.Add("red");
    colors.Add("green");
    colors.Add("blue");

    ViewBag.ListColors = colors; //colors is List
    ViewBag.DateNow = DateTime.Now;
    ViewBag.Name = "Hajan";
    ViewBag.Age = 25;
    return View(); 
}

<p>
    My name is 
    <b><%: ViewBag.Name %></b>, 
    <b><%: ViewBag.Age %></b> years old.
    <br />    
    I like the following colors:
</p>
<ul id="colors">

<% foreach (var color in ViewBag.ListColors) { %>
    <li>
        <font color="<%: color %>"><%: color %></font>
    </li>
<% } %>

虽然希望你能使用Razor:)

答案 1 :(得分:3)

您需要将变量发送到ViewModel中的视图(View()方法的参数)或TempData字典。

答案 2 :(得分:1)

您可以将其添加到ViewData []词典或(较新的)ViewBag动态。

在您的控制器中:

ViewData['YourVariable'] = yourVariable;
// or
ViewBag.YourVariable = yourVariable;

在您看来:

<%: ViewData["yourVariable"] %>
// or
<%: ViewBag.YourVariable %>