小编Tre*_*bob的帖子

在App_Code中共享@helper中使用@Html

我正在构建一个非常基本的MVC3站点,而我学习并且我在使用以下声明性Razor html帮助器时遇到困难.

在App_Code文件夹里面的RMB.cshtml里面:

@helper ReplaceCrLf(string strText)
{
    @Html.Raw(Html.Encode(strText).Replace(Environment.NewLine, "<br />"));
}
Run Code Online (Sandbox Code Playgroud)

在我的index.cshtml视图中:

@RMB.ReplaceCrLf(Model.Post)
Run Code Online (Sandbox Code Playgroud)

这给了我帮助器中Html的空引用异常,因为它似乎不知道它是什么.我可以通过将Html从视图传递给帮助器来解决这个问题,但我想知道是否有另一种方式让我的共享html助手能够引用Html而不必将其传递给我写的助手?

为了完整起见,这是工作方法:

在App_Code中的RMB.cshtml中

@helper ReplaceCrLf(string strText, System.Web.Mvc.HtmlHelper Html)
{
    @Html.Raw(Html.Encode(strText).Replace(Environment.NewLine, "<br />"));
}
Run Code Online (Sandbox Code Playgroud)

在index.cshtml视图中

@RMB.ReplaceCrLf(Model.Post, Html)
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc razor razor-declarative-helpers asp.net-mvc-3

29
推荐指数
4
解决办法
2万
查看次数

管理动态网站设置保留在数据库中

我正在尝试创建一些东西来在我们的ASP.NET网站中保存全局站点范围的设置 - 诸如站点名称,谷歌分析帐号,facebook URL等等...该站点可以有多个"品牌"或子站点关联使用它,因此是sitguid列,我们还希望可以选择将它们分组,因此组列 - 例如TEST和PRODUCTION(通过web.config appsetting设置).

我不希望任何KEY在任何地方被硬编码,但我希望能够在代码中尽可能简单地引用它们,例如SiteSetting.getSetting("SiteName")(这些可以用在模板中(masterpages等) )更多初级开发者将创建)

我还希望能够管理管理控制台中的现有设置,并能够创建新设置.

数据类型列用于编辑表单,以便可以使用正确的输入元素,例如位类型的复选框,varchar的文本框等...

SiteSettings数据库表目前:

  [sts_sitGuid] [uniqueidentifier] NOT NULL, -- tells us which site the setting is for
  [sts_group] [nvarchar](50) NOT NULL, -- used to group settings e.g. test/live
  [sts_name] [nvarchar](max) NULL, -- the display name of the setting, for edit forms
  [sts_alias] [nvarchar](50) NOT NULL, -- the name for the setting
  [sts_value] [nvarchar](max) NOT NULL, -- the settings value
  [sts_dataType] [nvarchar](50) NULL, -- indicates the control to render on edit form
  [sts_ord] …
Run Code Online (Sandbox Code Playgroud)

c# architecture asp.net

8
推荐指数
1
解决办法
744
查看次数