0

我需要在viewfrom中显示一条消息controller。这是我的代码;

看法

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

控制器

public ActionResult Index(MyModel model)
    {

        // I Need to send a String to the Label in the View

        return View();
}
4

3 回答 3

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's方法有一些优雅之处。DisplayFor()


话虽如此,“最简单”(阅读:快速而肮脏,但很快变得丑陋)的解决方案是将您的消息填充到ViewBag动态对象中。

在控制器中:

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

在视图中:

@ViewBag.MyMessage

但是这样做,你会失去智能感知、可重复性 (DRY),可能还会失去理智。可能在一个地方使用一个属性(默认 _Layout 页面使用的一个 la )。 ViewBag.Title一大堆不连贯的东西塞进包里,不,谢谢。

于 2013-02-18T17:21:23.123 回答
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>
于 2013-02-18T17:19:41.913 回答
0
public ActionResult Index(MyModel model)
{

        ViewBag.Message = "Hello World";

        return View();
}

你的看法

<h1>@ViewBag.Message</h1>
于 2013-02-18T17:21:09.597 回答