.Net MVC:无法在View中获取ViewBag值

时间:2014-04-06 19:42:30

标签: asp.net-mvc asp.net-mvc-4 c#-4.0 razor

作为一个初学者,我正在做一个非常简单的例子来理解基本的Razor概念,当我在我的控制器类中使用ViewBag设置一些值并尝试将它们视图中它们没有打印时,它既没有显示对此的不满也没有任何错误,请帮帮我吧。这就是我正在做的事情

模式类:产品

public class Product
    {
        public int ProductId      { get; set; }
        public string Name        { get; set; }
        public string Description { get; set; }
        public Decimal Price      { get; set; }
        public string Catagoery   { get; set; }
    }

HomeController (仅粘贴不适用于我的特定方法)

   public ActionResult MyProduct()

        {
            ViewBag.ProductCount = 1; 
            ViewBag.ProductQuality = "Good"; 
             return View(product); 

        }

的ProductView

@model RazorApplication.Models.Product

@{
    ViewBag.Title = "Demo";
    Layout = "~/Views/_BasicLayout.cshtml";
}

<table>
        <tr>
            <td>Name</td><td>@Model.Name</td>

        </tr>
        <tr>
            <td>Quality</td><td>@ViewBag.ProductCount</td>

        </tr>

        <tr>
            <td>Quality</td><td>@ViewBag.ProductQuality</td>

        </tr>

    </table>

2 个答案:

答案 0 :(得分:3)

此代码事件是否已编译?我问,因为你的一般工作,但代码中有错误,有名称等但我认为这是制作样本的结果。

如果你可以编译你应该没事。将您的代码放入.NET Fiddle,正在运行并正确打印出来。 http://dotnetfiddle.net/wgE30l

您没有从Model获取名称,因为它从未设置过。 ViewBag独立于模型工作并正确显示。

答案 1 :(得分:2)

您的代码看起来很好,您在ViewBag中设置了值,它们应该打印在页面中,尝试 Ctrl + F5 来刷新您的页面,可能是页面是从浏览器缓存加载,按 Ctrl + F5 ,所有页面都将从服务器呈现新的。