【问题标题】:.Net MVC : unable to get ViewBag value in View.Net MVC:无法在 View 中获取 ViewBag 值
【发布时间】:2014-04-06 19:42:29
【问题描述】:

作为一个初学者,我正在做一个非常简单的示例来理解基本的 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); 

        }

产品视图

@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>

【问题讨论】:

  • 代码看起来不错,应该打印产品计数
  • 如果我尝试查看这些值时它不应该显示 IntelliSense 吗?
  • 它不会在 ViewBag 的情况下显示智能感知,它的值是在运行时确定的,它是一个动态属性
  • 您发布的视图是从 MyProduct 操作返回的
  • 是的,对于该操作,我已经注册了视图产品,并且正确显示了产品名称但不显示 Viewbag 内容,这是强类型视图,我在创建时对其进行了重命名,它有什么问题吗?

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


【解决方案1】:

此代码事件是否编译?我问是因为您通常可以使用,但代码中存在错误,名称等,但我认为这是制作样本的结果。

如果你能让它编译你应该没问题。将您的代码放入 .NET Fiddle 中,一切正常运行并打印出来。 http://dotnetfiddle.net/wgE30l

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

【讨论】:

    【解决方案2】:

    您的代码看起来不错,您正在设置 ViewBag 中的值,它们应该打印在页面中,尝试 Ctrl + F5 刷新页面,可能是页面正在加载浏览器的缓存,按 Ctrl + F5 所有页面都会从服务器重新渲染。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-18
      • 1970-01-01
      • 1970-01-01
      • 2015-02-07
      • 1970-01-01
      相关资源
      最近更新 更多