将值从javascript传递到mvc控制器
我正在使用tinyMCE(js中的富文本编辑器)。 目前,我有一个功能:将值从javascript传递到mvc控制器,javascript,jquery,asp.net-mvc-2,tinymce,Javascript,Jquery,Asp.net Mvc 2,Tinymce,我正在使用tinyMCE(js中的富文本编辑器)。 目前,我有一个功能: function GetEditorValue() { var val = tinyMCE.get('valueTextArea').getContent() } 返回输入到富文本编辑器中的文本。 现在,有没有一种方法可以使用POST将这些数据传递给我的mvc控制器 在那里访问它? (所有这些都是在ASP.NET MVC 2中使用C#完成的)您可以使用AJAX发送此值。例如,提供以下功能:
function GetEditorValue() {
var val = tinyMCE.get('valueTextArea').getContent()
}
返回输入到富文本编辑器中的文本。
现在,有没有一种方法可以使用POST将这些数据传递给我的mvc控制器
在那里访问它?
(所有这些都是在ASP.NET MVC 2中使用C#完成的)您可以使用AJAX发送此值。例如,提供以下功能:
var val = tinyMCE.get('valueTextArea').getContent();
$.post('<%= Url.Action("foo") %>', { value: val }, function(result) {
// TODO: handle the success
alert('the value was successfully sent to the server');
});
现在很明显,因为这是一个RichText编辑器,所以该值可能包含危险字符,ASP.NET将通过抛出异常来拒绝这些字符。要避免这种情况,可以使用以下属性装饰控制器操作:
[HttpPost]
[ValidateInput(false)]
public ActionResult Foo(string value)
{
// Do something with the value
}
如果您使用的是ASP.NET 4.0,还应将以下内容添加到web.config中:
<httpRuntime requestValidationMode="2.0" />
这看起来肯定是答案,即使在我的例子中,没有调用我的控制器方法。不过,我会自己解决这一部分。非常感谢。@snwr,可能有一些javascript错误?萤火虫说什么?您能看到发送的AJAX请求吗?没有javascript错误,而且根据firebug(并传递参数的正确值),my$.post肯定会被命中。然而,我在控制器上的断点没有被击中。实际上,我解决了这个问题。尽管如此,控制器方法内部的字符串仍然为null(尽管正在调用控制器)@snwr,当您在FireBug中查看请求时,您应该看到POST正文中发送了value=somevalue
。然后,在控制器操作中,您应该能够返回值
。请注意,控制器操作中的参数名称应与传递值参数的名称匹配。
<httpRuntime requestValidationMode="2.0" />