3

我在域模型上有一个描述字段,我想打开它以允许 html。当我提交表单时,我收到了“可能很危险的请求” yada.... 这是我所预料的,但事实证明很难用我目前的设置来补救。

我的视图模型有多个对象,例如:

public class MyViewModel
{
    public ISomething Something { get; set; }
    public IAnotherThing Another { get; set; }
}

其中ISomething包含描述,接口和类本身是在 mvc 站点的另一个项目中定义的。

虽然我确定我可以ValidateInput(false)在控制器操作上添加属性,但我不一定要打开所有打开的东西……只是这个特定的描述。

无论如何,[AllowHtml]这似乎是答案,但它在System.Web.Mvc. 添加对外部库的引用让我很痛苦,但我硬着头皮,我什至无法添加该引用,因为它不在我的可用列表中,即使它与 mvc4 应用程序在同一个解决方案中。

我不禁想象其他人已经能够克服这一点,但我似乎已经被打败了。很感谢任何形式的帮助!

4

1 回答 1

1

您是否尝试使用 MetaDataType 属性来扩展您的模型?

如果您的 Model 是 Partial 类,您可以执行以下操作:

namespace YourModelsNamespace
{
    [MetadataType(typeof(ISomethingMD))]
    public partial class ISomething
    {
    }

    public partial class ISomethingMD
    {
        [AllowHtml]
        public string Descriptin { get; set; }
    }
}

这样您就可以“扩展”模型,并为该特定属性设置元数据。这些类将在您的 MVC 项目中,因此您将对模型有更多的控制权。此方法可用于添加显示名称属性,以及 DataAnnotations 命名空间中的其他属性。

请注意,此类的命名空间应与您的模型相同。

于 2012-12-11T19:59:44.320 回答