ASP.NET MVC複数ボタン用紙 -- c# フィールド と asp.net-mvc フィールド と multiple-forms フィールド 関連 問題

asp.net mvc multiple button form












1
vote

問題

日本語

コードの部分を作成する方法

<事前> <コード> <ol> @foreach (var role in ViewBag.RolesForThisUser) { <li>@role <input type="hidden" name="DeleteRoleName" value="@role" /><input type="submit" value="Delete" name="action:DeleteRole" /></li> } </ol>

コントローラに必要なものを投稿する。これでリストに最初の役割を掲載します(どちらのボタンをクリックしても)。通常、各リストオプションの複数のフォームを実行しますが、今回は他のフォーム内のリストです。フォームにフォームに入れることができますか?

すべての投稿形式の形式:

<事前> <コード> @using (Html.BeginForm("GetUserRoles", "Manage")) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) <p> Users: @Html.DropDownList("UserName", (IEnumerable<SelectListItem>)ViewBag.Users, "Select ...") <input type="submit" value="Get roles" name="action:GetUserRoles" /> </p> if (ViewBag.RolesForThisUser != null) { <hr /> <p> <text> Role name: </text>@Html.DropDownList("RoleName", (IEnumerable<SelectListItem>)ViewBag.Roles, "Select ...") <input type="submit" value="Add role" name="action:AddRole" /> </p> <hr/> <p> <text>User roles:</text> <ol> @foreach (var role in ViewBag.RolesForThisUser) { <li>@role <input type="hidden" name="DeleteRoleName" value="@role" /><input type="submit" value="Delete" name="action:DeleteRole" /></li> } </ol> </p> } if (ViewBag.Action != null) { <hr /> <p> @ViewBag.Action </p> } }

助けてください。 ありがとう、 Thomas

英語

How to make that part of code

        <ol>             @foreach (var role in ViewBag.RolesForThisUser)             {                 <li>@role <input type="hidden" name="DeleteRoleName" value="@role" /><input type="submit" value="Delete" name="action:DeleteRole" /></li>             }         </ol> 

to post what i need to controller. Now it posts the very first role on the list (no matter which button i click). Usually i do multiple forms for each list option, but this time that list inside other form. Can i put form into form?

Everything is in one post form:

@using (Html.BeginForm("GetUserRoles", "Manage")) {     @Html.AntiForgeryToken()     @Html.ValidationSummary(true)     <p>         Users: @Html.DropDownList("UserName", (IEnumerable<SelectListItem>)ViewBag.Users, "Select ...")         <input type="submit" value="Get roles" name="action:GetUserRoles" />     </p>      if (ViewBag.RolesForThisUser != null)     {         <hr />         <p>             <text> Role name: </text>@Html.DropDownList("RoleName", (IEnumerable<SelectListItem>)ViewBag.Roles, "Select ...")             <input type="submit" value="Add role" name="action:AddRole" />         </p>          <hr/>         <p>             <text>User roles:</text>             <ol>                 @foreach (var role in ViewBag.RolesForThisUser)                 {                     <li>@role <input type="hidden" name="DeleteRoleName" value="@role" /><input type="submit" value="Delete" name="action:DeleteRole" /></li>                 }             </ol>         </p>     }      if (ViewBag.Action != null)     {         <hr />         <p>             @ViewBag.Action         </p>     } } 

Please help. Thanks, Thomas

</div
        

回答リスト

0
 
vote

フォームを入れ子にすることはできません。フォームデータまたはパラメータとしてロールを追加する必要がある情報を持つコントローラアクションに投稿するのに役立ちます。マニュアルで設定したパラメータをオープニングフォームタグに設定してください。 JavaScriptを使用して、ボタンをクリックして送信時にフォーム属性を変更することもできますが、送信しようとしている各行のデータフィールドを使用してAJAX呼び出しをトリガーする標準入力を使用して、それを使用しやすくなります。 form.onsubmitプロパティを使用すると、フォームアクションで同じアクションにパラメータを追加できます。 Button.Onclickプロパティを使用すると、特定のコントローラと、ロジックを処理するアクションに移動するAJAX呼び出しを作成できます。

 

You can not nest forms, you would be better off using ajax to post to a controller action that has the information you need to add the role as form data or parameters. The submit action set in the opening form tag with the parameters manually set. You could also use javascript to change the form attributes on submit based upon the button click, but it would be easier to follow using standard inputs that trigger the ajax call using data fields for each row you are looking to submit. The form.onSubmit property will allow you to add parameters to the same action in the form action. A button.onClick property allows you to construct the ajax call that will go to a specific controller and action to handle your logic.

</div
 
 
 
 
0
 
vote
vote
ベストアンサー
 

問題は異なる方法で解決されました(3つの形式 - ViewBagでのユーザー名渡し):

<事前> <コード> @using (Html.BeginForm("GetUserRoles", "Manage")) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) <p> Users: @Html.DropDownList("UserName", (IEnumerable<SelectListItem>)ViewBag.Users, "Select ...") <input type="submit" value="Get roles" name="action:GetUserRoles" /> </p> } @if (ViewBag.RolesForThisUser != null) { <hr/> <p> <text>User roles:</text> <ol> @foreach (var role in ViewBag.RolesForThisUser) { using (Html.BeginForm("GetUserRoles", "Manage")) { @Html.AntiForgeryToken() <li>@role <input type="hidden" name="UserName" value="@ViewBag.User" /> <input type="hidden" name="DeleteRoleName" value="@role" /> <input type="submit" value="Delete" name="action:DeleteRole" /></li> } } </ol> </p> } @using (Html.BeginForm("GetUserRoles", "Manage")) { @Html.AntiForgeryToken() if (ViewBag.RolesForThisUser != null) { <p> <text> Role name: </text> @Html.DropDownList("RoleName", (IEnumerable<SelectListItem>)ViewBag.Roles, "Select ...") <input type="hidden" name="UserName" value="@ViewBag.User" /> <input type="submit" value="Add role" name="action:AddRole"/> </p> } }
 

Problem solved different way (3 forms - passing UserName in ViewBag):

@using (Html.BeginForm("GetUserRoles", "Manage")) {     @Html.AntiForgeryToken()     @Html.ValidationSummary(true)     <p>         Users: @Html.DropDownList("UserName", (IEnumerable<SelectListItem>)ViewBag.Users, "Select ...")         <input type="submit" value="Get roles" name="action:GetUserRoles" />     </p> }  @if (ViewBag.RolesForThisUser != null) {     <hr/>     <p>         <text>User roles:</text>         <ol>             @foreach (var role in ViewBag.RolesForThisUser)             {                 using (Html.BeginForm("GetUserRoles", "Manage"))                 {                     @Html.AntiForgeryToken()                     <li>@role                      <input type="hidden" name="UserName" value="@ViewBag.User" />                     <input type="hidden" name="DeleteRoleName" value="@role" />                     <input type="submit" value="Delete" name="action:DeleteRole" /></li>                 }             }         </ol>     </p> }  @using (Html.BeginForm("GetUserRoles", "Manage")) {     @Html.AntiForgeryToken()     if (ViewBag.RolesForThisUser != null)     {         <p>             <text> Role name: </text>             @Html.DropDownList("RoleName", (IEnumerable<SelectListItem>)ViewBag.Roles, "Select ...")             <input type="hidden" name="UserName" value="@ViewBag.User" />             <input type="submit" value="Add role" name="action:AddRole"/>         </p>     } } 
</div
 
 

関連する質問

0  vb.netで複数のフォームにわたって複数のボタンに同じサブプログラムを使用する方法はありますか?  ( Is there a way to use the same subprogram for multiple buttons across multiple f ) 
プログラミングと比較的経験が経験されていますが、数年間対象として服用しています。今年は私の最後の学校であり、これは私が大きな仕事を引き受けなければならないということです。私はvb.netのゲームのmastermindを選択しましたが、私は修正することを学んでい...

0  jQuery Ajaxの投稿フォームは他の複数のフォームへのものです  ( Jquery ajax posting form to multiple other forms ) 
これらのような複数のフォーム: <事前> <コード> <form class="form_game"> <select name="game" class="gm"> <option value="Badminton">Badminton</option> <...

2  別のDialogBox JSFからダイアログボックスを呼び出すときの複数のフォームの送信  ( Multiple form submissions when calling a dialogbox from another dialogbox jsf ) 
別のダイアログボックスからダイアログボックス(P:ダイアログ)を呼び出しようとしています。マイページでは、リンクをクリックするとダイアログボックスが開き、このダイアログボックスには2つのセクションがあります.1つはログイン用、もう1つはサインアップ用です。現在...

0  WordPressにさまざまな種類のユーザーアカウントを追加する  ( Adding different types of user accounts in wordpress ) 
私のWordPressのWebサイトで2種類のユーザーを追加したいです。この記事を読んでくださいが、無料の方法を提供していません。 さまざまなタイプの複数のユーザー登録フォームWordPress のユーザーの 「買い手と売り手」のようになるでしょう、売り手...

0  子フォームのXボタンをクリックするとアプリを閉じる方法?  ( How to close the app when i make click on x button in a child form ) 
私は2つの形式のフォームアプリを持っています。 2番目のフォームでは、右隅に x8 ボタンがあります。このボタンをクリックしてアプリを閉じるときは、Form2ウィンドウを隠すだけではありません。 ...

0  同じページで複数のフォーム  ( Multiple forms in same page ) 
私は長い間解決策を探していますが、見つけることができませんでした 解決。解決策を見つけるのを手伝ってください。 X.aspxページにフォームがあります。フォームはの下にあります <事前> <コード> <form name="add_fund_conf" ...

1  C#を使用してLazarusやPhotoshopなどのフローティングフォームを作成するのですか?  ( How do i make floating forms such as in lazarus or photoshop using c ) 
プログラムがロードされると、複数のフォームが開きますが、Lazarus IDEなどのツールのようなツールのようなツールがありますか? ...

12  同じタイプの複数の形式 - Symfony 2  ( Multiple forms of same type symfony 2 ) 
だから私はこののような私のコントローラーの処置を持っています <事前> <コード> $task1 = new Task(); $form1 = $this->createForm(new MyForm(), $task1); $task2 = new Tas...

1  PYQTのマルチダイアログプログラムは閉じません  ( Multi dialog program in pyqt will not close ) 
私のプロジェクトの場合、私は複数のダイアログを互いにリンクさせる必要があります。 1つのボタンが1つのレベルになり、別のボタンは2つのレベルに戻ります。私のコードをすべて表示せずに探しているものの基本的な考えを得るために、ここではコンパイル可能な例: <事前>...

0  1つの送信を使用して複数の保存を保存します  ( Multiple saves with one submit ) 
リストされた項目ごとに1つのラジオボタン、送信ボタンとチェックボックスを含むフォームが必要です。 送信時に、フォームは各チェック項目に対して別々のレコードを保存する必要があります。保存された各項目には、他の隠れた値とともにラジオボタンの値を含める必要がありま...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有