gpt4 book ai didi

asp.net-mvc-3 - MVC ASP.NET MVC3 AllowHtml 属性不起作用?

转载 作者:行者123 更新时间:2023-12-04 06:11:08 25 4
gpt4 key购买 nike

问题很简单:

假设您有一个名为 Person 的模型

public class Person
{

public int PersonID {get; set;}

public string Name {get; set;}

[AllowHtml] // Allow html in Intro property
public string Intro {get; set;}

[ScaffoldColumn(false)]
public string ComplicatedValue {get; set;}

}

在 Controller 的创建操作中
[HttpPost]
public ActionResult Create(Person o, FormCollection collection)
{

// whatever code here;

}

如果你运行它,
  • 为 Intro 输入纯文本,否
    问题发生。
  • 为 Intro 输入 html 内容,无论您如何设置
    你的配置文件,它会
    告诉“一个潜在的危险......”

  • 我确实找到了这个问题的原因。

    如果将函数更改为
    public ActionResult Create(Person o) // Get rid of the *FormCollection collection*
    {

    // whatever code here;

    }

    这将消除“潜在危险”错误。

    但我的问题对于我的应用程序,我必须使用辅助参数 FormCollection 集合 在 Create Action 方法中,因为我需要使用其他一些控件值和服务器变量来将计算值分配给 复杂值 属性(property)。

    如果任何 ASP.NET MVC3 专家遇到了与我相同的问题,并找到了解决方案,请告诉我。

    最佳答案

    此链接中的此论坛详细讨论了此问题并提供了一些解决方法。

    http://forums.asp.net/p/1621677/4161637.aspx

    这是该线程中的一种解决方案,可能适合您,也可能不适合您:

    public ActionResult Create(Person o) // Get rid of the *FormCollection collection*
    {
    FormCollection form = new FormCollection(Request.Unvalidated().Form);
    // whatever code here;
    }

    或者我自己的建议:
    public ActionResult Create(Person o, int otherControlValue1, int otherControlValue2, ...)
    {
    o.ComplicatedValue = CalculateComplicatedValue(otherControlValue1, otherControlValue2, ...);
    // whatever code here.

    }

    就我而言,我没有使用 FormCollection,但它在那里,所以我的 [HttpPost] 方法有不同的足迹。我做了这个黑客并输入了一个虚假参数:
    public virtual ActionResult Edit(int id)
    {
    return View(this.repository.GetById(id));
    }
    [HttpPost]
    public virtual ActionResult Edit(int id, int? bogusID)
    {
    var d = repository.GetById(id);
    if (TryUpdateModel(d))
    {
    repository.Save();
    return RedirectToAction("Index");
    }
    return View();
    }

    关于asp.net-mvc-3 - MVC ASP.NET MVC3 AllowHtml 属性不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4765665/

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