1. ホーム
  2. asp.net

[解決済み] Url.Actionのパラメータ?

2022-03-02 19:45:38

質問

リスティングコントローラーに、以下のようなものがあります。

 public ActionResult GetByList(string name, string contact)
 {        
     var NameCollection = Service.GetByName(name);    
     var ContactCollection = Service.GetByContact(contact);           
     return View(new ListViewModel(NameCollection ,ContactCollection));
 }

ASPXページで私は呼び出す。

 <a href="<%:Url.Action("GetByList","Listing" , new {name= "John"} , new {contact="calgary, vancouver"})%>"><span>People</span></a>

ASPXのコードに問題があります。johnという名前のレコードを取り出すことはできるのですが、このコードに contact="calgary, vancouver" と表示され、エラーになります。

の中で2つのパラメータを呼び出すにはどうしたらよいでしょうか。 Url.Action . 下記を試しましたが、これも間違っているようです。

  <a href="<%:Url.Action("GetByList","Listing" , new {name= "John" , contact= " calgary, vancouver" })%>"><span>People</span></a>

解決方法は?

以下は正しいオーバーロードです(あなたの例では閉じた }routeValues 匿名オブジェクトなので、コードで例外がスローされます)。

<a href="<%: Url.Action("GetByList", "Listing", new { name = "John", contact = "calgary, vancouver" }) %>">
    <span>People</span>
</a>

デフォルトのルートを使用していると仮定すると、以下のようなマークアップが生成されるはずです。

<a href="/Listing/GetByList?name=John&amp;contact=calgary%2C%20vancouver">
    <span>People</span>
</a>

を正常に呼び出すことができます。 GetByList コントローラアクションに二つのパラメータを渡します。

public ActionResult GetByList(string name, string contact) 
{
    ...
}