【问题标题】:Reading non static values in MVC View在 MVC 视图中读取非静态值
【发布时间】:2015-10-02 09:38:47
【问题描述】:

如何使用 Razor 视图读取视图中的非静态值

// MODEL
public int Number1 { get; set; }
public int Number2 { get; set; }

// VIEW
@using BasicCalculator.Events.Models;

@{   
 Layout = "~/Views/Shared/_Layout.cshtml";
}

@Html.TextBox("Number1",?????

我必须阅读视图中的属性(Number1 和 Number2)...

【问题讨论】:

  • 当我使用 BasicCalculator.Events.Models.Calculator 时...然后它向我显示带有所有智能感知的 html 但我无法从模型中读取非静态成员.....但是当我使用模型 BasicCalculator.Events.Models.Calculator 时它无法识别 html 并且没有智能感知............有什么想法吗??

标签: asp.net-mvc asp.net-mvc-4 razorengine


【解决方案1】:

您想使用TextBoxFor,它在您传入表达式时绑定到您的模型:

@Html.TextBoxFor(m => m.Number1)

但要做到这一点,您需要将您的 using 语句更改为 model

@model BasicCalculator.Events.Models.YourModelName

【讨论】:

  • 当我尝试这个时,它无法识别 Html .....我必须为共享视图文件夹中的视图做任何不同的事情
【解决方案2】:

将您的 @using 更改为 @model

@model BasicCalculator.Events.Models.YourModel

@Html.TextBoxFor(m => m.Number1)

【讨论】:

  • 当我这样做时,它显示的@HTML 在当前上下文中不存在......然后我导入了 System.Web.Mvc 命名空间......但现在它无法识别.TextBox...... ..
【解决方案3】:

正如您在@CodeCaster 回答的评论中所说,您的视图找不到@HTML 的命名空间,并且当您导入 System.Web.Mvc 命名空间时,他无法识别 .TextBox。

我建议您将 Web.config 文件放在 View 文件夹中。 搜索里面的标签。 确保视图中所需的所有命名空间都在其中。

你应该有如下想法:

<namespaces>
   <add namespace="System.Web.Mvc" />
   <add namespace="System.Web.Mvc.Ajax" />
   <add namespace="System.Web.Mvc.Html" />
   <add namespace="System.Web.Optimization"/>
   <add namespace="System.Web.Routing" />
</namespaces>

希望这可能会有所帮助。

【讨论】:

  • 上面提到的都在配置里
  • 如果您的问题还没有解决。您的 Web.config 中是否包含其他命名空间?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 2012-02-19
  • 2014-09-22
  • 1970-01-01
  • 2015-09-26
  • 1970-01-01
相关资源
最近更新 更多