2011-06-15 34 views
1

我已經開始使用Ajax進行遊戲,發現一個(希望是)小問題,我似乎無法找到答案。當輸入字段中有HTML標籤時,未提交Ajax表單

我我的網頁上生成的Ajax表單列表,代碼看起來像這樣

using (Ajax.BeginForm("FixTranslation", new { translationId = errorGroup.Key.Id }, new AjaxOptions { UpdateTargetId = "targetCell_" + errorList.Key.Id })) 
{    
    <table> 
     <tbody> 
      <tr><td>@errorGroup.SourceText</td></tr> 
      <tr><td id="@("targetCell_" + errorGroup.Id)"><input type="text" name="text" id="@("target_" + errorGroup.Id)" value="@(errorGroup.TargetText.Replace(' ', (char)0x00A0))" /><input type="submit" value="Fix" /></td></tr> 

       @foreach (var error in errorGroup.Value) 
       {    
        <tr><td>@error.Description</td></tr> 
       }     

      </tbody> 
     </table> 
    } 

在控制器我有這樣的動作:

public ActionResult FixTranslation(string projectId, int translationId, string text) 
{ 
    if (Request.IsAjaxRequest()) 
    { 
     return Content("You entered: " + new HtmlString(text)); 
    } 

    return RedirectToAction("GetProjectOverview", new { projectId = projectId }); 
} 

在沒有角度也能正常工作在輸入字段中出現括號,表單得到正確發送。但是當輸入字段中有一些尖括號(例如「這是帶有< 1>標籤的文本」)時,我的操作方法根本不會被調用。

有人知道爲什麼會發生這種情況嗎?

非常感謝。

回答

1

已解決。它不是特定於Ajax表單,原因是請求驗證,可以通過這種方式關閉特定操作方法:

[ValidateInput(false)] 
public ActionResult FixTranslation(string projectId, int translationId, string text) 
{ 
    ... 
} 
相關問題