2010-12-15 16 views
0

私はまだ.NET MVCの初心者ですので、私が何かばかげている場合は私を修正してください。私は1つのlinqクエリから2つの編集フォームを表示することができますアクション/ビューの組み合わせを作成しようとしています。だからここに私の行動です:ASP.NET MVC複数のフォーム

Function Settings() As ActionResult 
    Dim pagetext = (From t In _db.PageTexts _ 
        Where t.campus = My.Resources.Campus _ 
        Select t) 
    Return View(pagetext) 
End Function 

そしてここでは、私の見解である:だから

<% For Each item As EDKiosk.PageText In Model%> 
<% Using Html.BeginForm("Settings", "Admin")%> 
    <div class="editor-label"> 
     <%= Html.LabelFor(Function(model) item.recommend)%> 
    </div> 
    <div class="editor-field"> 
     <%= Html.TextAreaFor(Function(model) item.recommend)%> 
     <%= Html.ValidationMessageFor(Function(model) item.recommend)%> 
    </div> 
<% End Using %> 
<% Next %> 

、私の最初の質問は、私がその権利をやっているのですか?次に、私のフォローアップの質問は、私のメソッドがこのデータをどのように扱うのでしょうか?前もって感謝します!

EDIT:

パーサミュエルの提案、私はそれが動作するようになりましたが、私はそのまだ種類の不格好なように感じるthis-

<% Dim hidden = New With {Key .type = "hidden"}%> 
<div class="editor-field"> 
    <%= Html.TextBox("id", item.id.ToString(), hidden)%> 
</div> 

<div class="editor-field"> 
    <%= Html.Label("recommend")%> 
    <%= Html.TextArea("welcome", item.recommend.ToString())%> 
</div> 

のように私のコードを再加工。思考?

答えて

0

フォームを1つのフォーム要素(recommend)で作成しています。関連付けられたIDには隠れたフォームフィールドが必要か、フォームのアクションルートデータにIDを含める必要があります。

0

HTMLでは、好きなだけフォームを作成できます。ネストされていないことを確認するだけで、ブラウザ間で動作が未定義になることがあります。特定のケースでは、モデル内の各要素のフォームを生成しますが、このフォームには入力フィールド(非表示、テキスト、ドロップダウンリスト、チェックボックス、ラジオボタンなど)は含まれていません。したがって、空のフォームを送信すると、コントローラのアクションにデータが送信されず、送信されたデータを特定できなくなります。したがって、対応するモデルをフェッチしてその上でいくつかの操作を実行できるように、固有のIDフィールドなどの入力フィールドとしていくつかの情報を含めることができます。