2011-10-25 12 views
0

私のビューでは、さまざまなデータを取り込むテーブルがあります。当初は、そのユーザーが実行可能な行のみを表示します。ただし、すべての行を表示するオプションもあります。これまでのところ、テーブルの上に「?isRequiredAction = true」と「?isRequiredAction = false」という2つのハイパーリンクがあります。ビューからコントローラにデータを渡す方法

public ActionResult Index(bool? isRequiredAction){ 
string userId = User.Identity.Name; 
bool ira = true; 
if (isRequiredAction != null) 
{ 
    ira = Convert.ToBoolean(isRequiredAction); 
} 
... 
return View(model); 

だから、今コントローラはそれらのリンクをクリックすることで作成されたクエリ文字列からそのパラメータを取得している:コントローラでは、私は次のよう持っています。私はこのクエリでURLを汚したくないので、私はこのアプローチに満足していません。私が求めていることを達成するための簡単な方法はありますか?可能であれば、リンクをフォームオブジェクトに変換しないようにしたいと考えています。ありがとう。

+1

あなたが望む場合は、投稿方法で送信することができます。 – Birey

答えて

3

このMSDNの記事が役立ちます。

ビューからコントローラには、HttpPostを実行するか、データとしてパラメータとして渡すことができます。その後

  1. www.yourapp.com/home
  2. www.yourapp.com/home/showall

を、次のことができます。あなたは、たとえば、二つの異なるcustom routesを作成することができ

+1

誰もがMSDNの記事を理解できたら、なぜstackoverflowのようなサイトが必要でしょうか? –

0

両方のルートを同じアクションにするか、これらのルートごとに異なるアクションを作成します。あなたの選択!

0

技術的には、リンクフォームオブジェクトを作成したり、URLを「ダーティ」にしたくないため、ニーズに合った非常に適切なソリューションが存在するとは思えません。私はあなたの最初のアプローチに固執することをお勧めします。何もURLを汚すことに間違いがないので。あなたのURLを「汚い」ことによって、リンクをブックマークできるようにすることができます。あなたが本当に心配しているのであれば、2つの選択肢があります:

(1)Ajaxを使用してください。あなたのURLは影響を受けません。ただし、ブックマーク機能が失われます。

(2)URLを「きれい」にするためにURL書き換えを使用してください。フードの下でのこのアプローチは、URLを「汚い」のと同じですが、「かなり」の方法です。

関連する問題