gpt4 book ai didi

asp.net-mvc-3 - 需要允许操作方法字符串参数绑定(bind)标记

转载 作者:行者123 更新时间:2023-12-01 14:01:18 27 4
gpt4 key购买 nike

我有一个将字符串作为唯一参数的操作方法。 action 方法对其进行转换,并将结果返回给客户端(这是通过 ajax 调用完成的)。我需要在字符串值中允许标记。过去,我通过使用 [AllowHtml] 装饰我的模型的属性来完成此操作,但是该属性不能用于参数并且 AllowHtmlAttribute 类是密封的,所以我不能继承它。我目前有一个解决方法,我创建了一个只有一个属性的模型,并用上述属性装饰它,这是可行的。

我认为我不必跳过那个圈套。我是否遗漏了什么,或者我应该向 MVC 团队提出请求,以允许在方法参数上使用此属性?

最佳答案

如果您需要允许特定参数(与“模型属性”相对)的 html 输入,则没有内置方法可以做到这一点,因为 [AllowHtml] 仅与模型一起工作。但是您可以使用自定义模型绑定(bind)器轻松实现此目的:

public ActionResult AddBlogPost(int id, [ModelBinder(typeof(AllowHtmlBinder))] string html)
{
//...
}

AllowHtmlBinder 代码:

public class AllowHtmlBinder : IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var request = controllerContext.HttpContext.Request;
var name = bindingContext.ModelName;
return request.Unvalidated[name]; //magic happens here
}
}

在我的博文中找到完整的源代码和解释:https://www.jitbit.com/alexblog/273-aspnet-mvc-allowing-html-for-particular-action-parameters/

关于asp.net-mvc-3 - 需要允许操作方法字符串参数绑定(bind)标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4706784/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com