将输入字符串字段值发送到动作控制器

时间:2017-10-20 16:24:46

标签: c# jquery html ajax asp.net-mvc

我的视图中有一个字段,名为Comments,每当我在{&n;输入&#39;中的任何其他字符(字母等)之前包含<时,动作控制器没有被调用,我认为是因为无法正确解析字符串,

这是我的类中的属性声明的方式:

 [Display(Name = "Comments"), DataType(DataType.MultilineText)]
 public string my_comments { get; set; }

输入任何单词时都可以正常工作,例如:

dogddd@ddd.com>asa?

但如果我尝试这样的话:

<ddd@ddd.com><p<asa>asasd<f

该动作未被调用,我认为是因为这无法将输入解析为字符串...

如果我在最后添加<字符,那么它没有问题..例如:

ddd<

我在我看来使用JQuery:

  $("#btnSubmit").click(function () {  
 $.ajax({
                type: 'post',
                url: $("#btnSubmit").data("url"),
                data: $("#formEd").serialize(),              
                success: function (result) {
....
}})
})

HTML:

 <div class="form-group">
        <div class="control-label col-md-2">Comments</div>
        <div class="col-md-5">
            @Html.EditorFor(model => model.my_comments , new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.my_comments , "", new { @class = "text-danger" })
        </div>
    </div>

我的动作控制器:

[HTTPPost]
public ActionResult MyAction(MyClass parameter) // where MyClass contains the my_comments property...

1 个答案:

答案 0 :(得分:1)

您可以添加属性以禁用输入验证,但您必须确保确定要允许html。

[ValidateInput(false)]
[HTTPPost]
public ActionResult MyAction(MyClass parameter)

您还可以将属性添加到变量中以允许使用html。

 [Display(Name = "Comments"), DataType(DataType.MultilineText)]
 [AllowHtml]
 public string my_comments { get; set; }