1

一部のモデル情報を ActionLink に渡していますが、アクションにページ上の一部の入力の値も提供したいと考えています。たとえば、次のようなものがあるとします。

<input Name="MyInput" />

<%: Html.ActionLink("MyAction", "MyController", Model.Value);

アクションが Model.Value (パラメーターを介して渡される) と MyInput の値の両方を認識するようにしたいと思います。通常は FormCollection を使用しますが、送信を行っていないため、このインスタンスでは使用できません。

では、MyInput の値を MyAction に渡すにはどうすればよいでしょうか。MyInput という名前のプロパティをモデルに追加する必要がありますか? それがうまくいくと仮定すると、より簡単な方法、または少なくともモデルの変更を伴わない方法はありますか?

4

2 に答える 2

3

HTML でこれを行う方法がないため、ASP.NET MVC でこれを行う方法はありません。

これには、次の 2 つの解決策から選択できます。

  1. ユーザーがテキストボックスを編集するときにアンカータグの値を動的に変更して、入力した内容を含めるように JavaScript を使用します。ASP.NET ルーティングはサーバー上で実行され、クライアント側のコードが必要なため、これには使用できません。

  2. リンクの代わりにフォーム送信を行います。これは、HTML で推奨される方法です。ユーザーがデータを送信するときは、フォームにする必要があります。すべてを form タグでラップし、そこにテキスト ボックスとボタンを配置します。フォームのアクションを投稿先の URL に設定します。

これは私がこの質問に入れたのと同じ回答ですが、他の質問の質問者は少し異なる考えを持っていたかもしれません.

于 2010-01-09T07:20:38.683 に答える
1

私はおそらくJavascriptを介してテキストボックスの値を読み取ることができると判断し(おそらくJQueryを使用したでしょう)、(Model.Valueを使用するだけでなく)匿名型の一部としてパラメーターとして渡しました。ただし、アクションリンクの使用から、フォームの送信とFormCollectionの使用に切り替えることにしました。私が作成していたページの方が理にかなっています。

于 2010-01-09T07:08:14.683 に答える