显示控制器中的文本

时间:2013-02-18 17:18:51

标签: c# asp.net-mvc

我需要在view的{​​{1}}中显示一条消息。这是我的代码;

查看

controller

CONTROLLER

@Html.LabelFor // How do i write the rest to display the message

3 个答案:

答案 0 :(得分:1)

可以说,更优雅的解决方案,至少在被调用时,是使用强类型视图(使用模型 - MVC中的M)。一个简单的例子可能是:

模特:

public class MessageViewModel
{
    public string Message {get; set;}
}

控制器:

public ActionResult Index()
{
    var viewModel = new MessageViewModel {Message = "Hello from far away"};
    return View(viewModel);
}

观点:

@model MyNamespace.MessageViewModel

<h2>@Html.DisplayFor(model => model.Message)</h2>

我是否会为此页面上的单个邮件而烦恼?令人惊讶的是,大部分时间我都愿意。有一些优雅的视图可以准确地了解期望(反之亦然),Intellisense支持以及HtmlHelper的{​​{1}}方法,您可以在其中进行各种隐式格式化。


话虽这么说,“最简单”(阅读:快速和肮脏,但快速丑陋)的解决方案是将您的消息填充到DisplayFor()动态对象中。

在控制器中:

ViewBag

在视图中:

ViewBag.MyMessage = "Hello from a far away place";

但是这样做会失去智能感知,可重复性(DRY)以及可能的理智。在一个地方使用的一个属性,可能是( a la @ViewBag.MyMessage ,默认的_Layout页面使用)。袋子里塞满了一大堆断开的物品,不用谢谢。

答案 1 :(得分:0)

您可以在控制器中使用Viewbag或viewdata

    public ActionResult Index()
    {
       ViewData["listColors"] = colors;
        ViewData["dateNow"] = DateTime.Now;
        ViewData["name"] = "Hajan";
        ViewData["age"] = 25;;

        ViewBag.ListColors = colors; //colors is List
        ViewBag.DateNow = DateTime.Now;
        ViewBag.Name = "Hajan";
        ViewBag.Age = 25;
        return View(); 
    }
<p>
    My name is 
    <b><%: ViewData["name"] %></b>, 
    <b><%: ViewData["age"] %></b> years old.
    <br />    
    I like the following colors:
</p>
<ul id="colors">
<% foreach (var color in ViewData["listColors"] as List<string>){ %>
    <li>
        <font color="<%: color %>"><%: color %></font>
    </li>
<% } %>
</ul>
<p>
    <%: ViewData["dateNow"] %>
</p>

答案 2 :(得分:0)

public ActionResult Index(MyModel model)
{

        ViewBag.Message = "Hello World";

        return View();
}

您的观点

<h1>@ViewBag.Message</h1>