2010-04-15 74 views
2

任何想法爲什麼下面的代碼不會觸發如果我把一些HTML內的textarea?它工作正常,我沒有HTML,但我不知道爲什麼它不起作用。這是代碼。MVC/HTML - 輸入提交不會觸發HTML文本區域時

<% using (Ajax.BeginForm("AddPost", new AjaxOptions { UpdateTargetId = "blogPosts" })) 
    { %> 
    <table> 
     <tr> 
      <td>Post Title:</td> 
      <td><input id="Title" type="text" name="title" /></td> 
     </tr> 
     <tr> 
      <td>Post Description:</td> 
      <td><textarea id="Description" name="description" rows="10" cols="60" wrap="virtual"></textarea></td> 
     </tr> 
    </table> 
    <input type="submit" value="Save" /> 
<%} %> 


    Here is what gets rendered (It's inside an Ajax form) 

     <div> 
     <form action="/Home/AddPost" method="post" onclick="Sys.Mvc.AsyncForm.handleClick(this, new Sys.UI.DomEvent(event));" onsubmit="Sys.Mvc.AsyncForm.handleSubmit(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, updateTargetId: &#39;blogPosts&#39; });"> 
    <table> 
     <tr> 
      <td>Post Title:</td> 
      <td><input id="Title" type="text" name="title" /></td> 
     </tr> 
     <tr> 
      <td>Post Description:</td> 
      <td><textarea id="Description" name="description" rows="10" cols="60" wrap="virtual"></textarea></td> 
     </tr> 
    </table> 
    <input type="submit" value="Save" /> 
</form> 
    </div> 
+0

請澄清, 「不工作」。另外,您使用的是哪種服務器端語言? – 2010-04-15 01:15:49

+0

不工作=點擊提交按鈕什麼也沒有發生。使用C#。 – 2010-04-15 01:25:01

+0

哪個HTML?它是否包含''?哪個瀏覽器? – BalusC 2010-04-15 01:26:40

回答

2

最終成爲驗證的事情。將以下內容添加到Web.config中並且它工作正常。

<httpRuntime requestValidationMode="2.0" /> 
<pages validateRequest="false" /> 
4

在你的控制器動作添加以下屬性:

[ValidateInput(false)] 
public ActionResult AddPost() { } 

默認情況下,MVC將在形式檢查HTML輸入,除非你告訴它不通過將驗證請求拋出一個異常控制器操作中的ValidateInputAttribute。

+0

否定的。當我按下按鈕時,甚至沒有進入代碼。如果有幫助,我使用VS2010 MVC2.0。 – 2010-04-15 01:59:15

0

HTML標準不支持嵌套表單,這可能是導致您的問題的原因。嘗試刪除其中一個嵌套表格,看看是否有幫助。

+0

刪除它。不起作用。 – 2010-04-15 03:20:01

1

爲什麼你不能使用Ajax.BeginForm?您需要在您的控制器後置方法中設置功能參數,如下所示:public ActionResult AddPost(string Title, string Description)。請注意,參數名稱必須與數據來自的控件的ID匹配。

+0

我已經有這樣的設置。如前所述,只有當您輸入一個<後面有一個字母 2010-04-15 03:20:51