2012-05-05 10 views
1

私は以下のフォームといくつかのコードを持っています。Html.BeginForm()を使用して要素のIDを取得する方法

@using (Html.BeginForm("Insert", "Question", "POST")) 
{ 
    <div id="add_tag"> 
     <div id="list_tag"> 
      <span class="post-tag" id="2">Phi kim<span class="delete-tag" title="Xóa Tag này"></span></span> 
      <span class="post-tag" id="22">Hóa Vô Cơ<span class="delete-tag" title="Xóa Tag này"></span></span> 
      <span class="post-tag" id="1">Lý<span class="delete-tag" title="Xóa Tag này"></span></span> 
     </div> 
     <div class="tag-suggestions hidden"> 
     </div> 
    </div> 
    <div class="form-sumit clear"> 
     <input type="submit" id="submit-button" value="Post your question" /> 
    </div> 
} 

そしてHtml.BeginFormとFormCollectionを使用して、私はネストされたspanタグのIDを取得したいこの

[HttpPost] 
    [ValidateInput(false)] 
    public ActionResult Insert(FormCollection _form) 
    { 
     //my code here 
    } 

ようQuestionControllerの私の挿入アクション。どうやってやるの? Plz誰かが私を助けます。どうもありがとう。

答えて

3

フォームは、送信ボタンをクリックすると、このフォーム内のすべての入力値を収集し、次の形式でサーバーに送信します。inputId = inputValue。スパンはフォーム内の入力コントロールではなく、フォームはその値またはサーバーに送信する別の情報を収集しません。隠れた入力コントロールを生成し、それにid値を設定することができます。そして、アクションのサーバー側でFormCollectionから取得できます。

[HttpPost] 
[ValidateInput(false)] 
public ActionResult Insert(FormCollection formCollection) 
{ 
    //for example all hidden input controls start with "hidden_tag" id 
    //and end with your number of tag: 
    var allNeededKeys = formCollection.AllKeys.Where(x => x.StartsWith("hidden_tag")); 
    var listOfId = allNeededKeys.Select(formCollection.Get).ToList(); 
} 

幸運。

+0

こんにちは@Dima Shmidt、私はあなたの助言に従いました**本当に働いています**。本当にありがとう。 :D –

0

私はあなたができないと確信しています。あなたはファイトラーを使用して、それらがサーバーにポストバックされているかどうかを確認することができますが、私はそうではないと思います。

0

隠しフィールドを使用して、サーバーにスパンのIDを送信する必要があります。 ビューに強く入力されていますか?

関連する問題