2

これは私が考えていたものですが、もちろん機能しません。

@{
    var textBoxData = form.find('input[name="textboxList"]').val();
 } 
<input type="button" value="Add"  title="Add"  onclick="location.href='@Url.Action("Create_Add", "Controller", new { textboxList = textBoxData })'" />

これをどのように渡す必要がありますか?コントローラのアクション名とパラメータが正しい。テキストボックスに入力された値を取得する方法がわからないというだけです...

フォームをフォーム内に保存するのに問題があるため、誰かがこの解決策を提案しました。プロキシコードは次のようになります。

<firstForm>
   textboxfor Name
   dropdownfor DType

   If DTypeDDL value is "List" then
       <secondForm>
            textboxfor nameOfItem
            submitSecondForm (using that method i mentioned above)
       </secondForm>
   End If

   submitFirstForm
</firstForm>

私はかなり長い間2つのフォームを保存しようとしてきましたが、運がありません。これは基本的に私の最後の手段です。

4

2 に答える 2

5

まず、MVC(モデル、ビュー、コントローラー)を使用しているため、ビューモデル指向のhtmlファイルを使用する必要があります。

viewModelを作成します。

public class ExampleViewModel
{
    public ExampleViewModel()
    {
    }

    public virtual string TextBoxData { get; set; }
}

その後、viewmodelをモデルとして使用してhtmlをコーディングします。

@model Models.Views.ExampleViewModel
@using (Html.BeginForm())
{
<div class="editor-row">
        <div class="editor-label">
            @Html.LabelFor(model => model.TextBoxData)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.TextBoxData)
        </div>
</div>
<input type="submit" value="submit" />
}

とあなたのコントローラー:

public ActionResult Example()
{
    ExampleViewModel model = new ExampleViewModel();
    return This.View(model);
}

[HttpPost]
public ActionResult Example(ExampleViewModel model)
{
    string infoEntered = model.TextBoxData;
    // Do something with infoEntered
}

これがお役に立てば幸いです。

于 2012-08-29T18:08:19.047 に答える
3

ビューモデルを使用している場合は、次の回答を確認してください:MVCがビューからコントローラーにデータを送信する

ビューモデルを使用せずに入力からアクションメソッドにデータを送信することにのみ関心がある場合は、次のようにすることもできます。

意見:

@using (Html.BeginForm("Edit", "Some", FormMethod.Post))
{
    <input type="text" id="myTextBox" name="myTextBox" />
    <input type="submit" value="Submit" />
}

BeginForm行に注意してください。最初のパラメーターは、データの移動先となるアクションであり、「編集」という名前を付けました。次のパラメーターは、私が使用しているコントローラーで、SomeControllerという名前を付けました。BeginFormでコントローラーを参照しているときは、名前にコントローラービットを追加しません。3番目のパラメーターは、サーバーにデータを送信するときにPOSTメソッドを使用するようにフォームに指示することです。

コントローラ:

public class SomeController
{
    [HttpPost]
    public ActionResult Edit(string myTextBox)
    {
        // Do what you want with your data here.
    }
}

さらに入力を追加した場合(ここでもビューモデルなしで)、それらをパラメーターとしてEditメソッドに追加できます。ただし、これは実際には推奨される方法ではありません。ビューモデルの使用を検討してください。ScottGuには、ビューモデルを使用して、必要なことを実行するためのすばらしいブログ投稿があります。

http://weblogs.asp.net/scottgu/archive/2007/12/09/asp-net-mvc-framework-part-4-handling-form-edit-and-post-scenarios.aspx

于 2012-08-29T18:08:18.570 に答える