0
我有两个非常相似的进程,都需要HTML输入和AllowHtml属性...一个进程创建一个HTML电子邮件,而另一个创建更新消息以显示登录用户。AllowHtml无法正常工作 - 但适用于不同的模型/控制器
AllowHtml Attribute在创建电子邮件时工作正常,但当我尝试创建更新消息时,它会抛出'具有潜在危险的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);
}
,UPDATE消息的模型:
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是保留参数什么的。给“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; }
}
这个问题已经解决......不过,我不会让我回答自己的问题。 – 2012-08-03 19:40:41