2017-10-20 99 views
0

我在我的視圖中有一個字段,名爲Comments,每次我在'輸入'中包含<之前的任何其他字符(字母等)時,動作控制器不會所謂的,我想是因爲不能夠正確地解析字符串,發送輸入字符串字段值給動作控制器

這是怎麼在我的課的屬性聲明:

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

它當我輸入任何文字能正常工作,例如:

dog[email protected]>asa?

但是,如果我嘗試類似:

<[email protected]><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

您可以添加屬性禁用輸入驗證,但你必須做出確定你確定你想允許html。

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

你也可以添加屬性到你的變量允許有html。

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

它的工作,我會選擇你的答案,一旦需要的以分鐘來選擇它去,有一個問題:爲什麼輸入驗證不允許'<'之前字符在這種情況下,任何其他字符? – AlexGH

+1

,因爲它認爲它可能是html或腳本,並且出於安全原因不允許它在後發送。 –

相關問題