1

我有两个非常相似的过程,都需要 HTML 输入和 AllowHtml 属性...一个过程创建一个 HTML 电子邮件,而另一个创建一个更新消息以显示给登录的用户。

AllowHtml 属性在创建电子邮件时工作正常,但是当我尝试创建更新消息时,它会引发“潜在危险的 Request.Form 值...”错误。

什么会导致 AllowHtml 为一个而不是另一个工作?

我已经倾注了所有代码,但无法弄清楚两者之间可能导致此问题的不同之处。


这是我在电子邮件控制器中的代码:

public ActionResult Create()
{
    return View(new EmailBlast());
}
[HttpPost]
public ActionResult Create(EmailBlast Email)
{
    if (ModelState.IsValid)
    {
        var EmailID = _emailblasts.Create(Email);
    }
    return View(Email);
}

这是电子邮件模型:

public class EmailBlast
{
    public decimal EmailID { get; set; }

    [Required(ErrorMessage = "Please Enter a Subject")]
    [StringLength(250, ErrorMessage = "Subject Too Long")]
    public string Subject { get; set; }

    [Required(ErrorMessage = "Please Include a Message")]
    [AllowHtml]
    public string HTMLBody { get; set; }
    ....
}

这是我在更新消息控制器中的代码:

public ActionResult Create()
{
    return View(new CreateUpdateMessage());
}
[HttpPost]
public ActionResult Create(CreateUpdateMessage message)
{
    if (ModelState.IsValid)
    {
        var Message = _updatemessages.Create(message);
        return RedirectToAction("View", new { id = Message.ID });
    }
    return View(message);
}

和更新消息模型:

public class CreateUpdateMessage
{
    [Required(ErrorMessage = "Please Enter a Subject")]
    [StringLength(250, ErrorMessage = "Subject Too Long")]
    public string Subject { get; set; }

    [Required(ErrorMessage = "Please Include a Message")]
    [AllowHtml]
    public string Message { get; set; }
}

好的,所以我发现了问题......“消息”必须是保留参数或其他东西,因为我将 CreateUpdateMessage.Message 更改为“MessageHTML”,现在一切正常。

public class CreateUpdateMessage
{
    [Required(ErrorMessage = "Please Enter a Subject")]
    [StringLength(250, ErrorMessage = "Subject Too Long")]
    public string Subject { get; set; }

    [Required(ErrorMessage = "Please Include a Message")]
    [AllowHtml]
--> public string MessageHTML { get; set; }
}
4

1 回答 1

0

对于其他有类似问题的人,请尝试<httpRuntime requestValidationMode="2.0" />在 web.config 的<system.web>部分中添加。

于 2012-08-16T00:13:57.730 回答