2017-03-23 6 views
0

ユーザーがidを使って何かを検索できるシンプルなサイトを作成しました(常に1つの結果しか返しません)。この検索入力をIDとしてURLに追加したいと思います。この特定の検索結果にURLを共有できるようにします。Asp.Net MVC 4検索文字列をidパラメータとして追加する

それは私がURLパラメータにIDを渡し、リンク項目にこのIDの検索を実行する方法がわからない

Mysite/ProductSearch/12345 

ようになります。

私はヒントと参考に感謝します。

コントローラ(ProductStateLookup):

[HttpPost] 
public ActionResult Index(string Search) 
{ 
    // some code to query the db and return me model with data 
    return View(model); 
} 

ビュー:

<div id="ProductSearch"> 
    <form action="ProductStateLookup/Index" method="POST"> 
     <input type="text" name="Search" placeholder="Enter Product ID"> 
     <input type="submit" value="Check P"> 
    </form> 
</div> 
+0

を生成する

routes.MapRoute( name: "Search", url: "ProductStateLookup/{search}", defaults: new { controller = "ProductStateLookup", action = "Index", id = UrlParameter.Optional } ); 

ようなものにする必要があるでしょうか?すべての結果が同じページに表示される場合は、 'jQuery.ajax'を使用して、検索パラメータを' ProductSearch'メソッドに渡し、部分表示を使用して結果を表示します(多分ページネーションを含むかもしれません。 –

答えて

1

あなたは方法[HttpGet]を作り、method="GET"<form>を変更する必要があります。カスタムルート定義を追加、またはにパラメータとテキストボックスname属性を変更するのいずれかの場合を除き、これは、URL(すなわち../ProductStateLookup/Index?search=1234)にクエリ文字列を追加すること

public ActionResult Index(string Search) 

ビュー

@using (Html.BeginForm("Index", "ProductStateLookup", FormMethod.Get)) 
{ 
    <input type="text" name="Search" placeholder="Enter Product ID"> 
    <input type="submit" value="Check P"> 
} 

注意id。 カスタムルート定義はどのように検索結果を返すことについて.../ProductStateLookup/1234

関連する問題