2011-01-11 5 views
0

私はパラメータとしてidをとるコントローラアクションを持っています。これを呼び出すための安らかな方法は/ Controller/Action/idで、ActionLinkヘルパー(下記)を使用すると、URLが正しく生成されます。BuildUrlFromExpressionForAreasは快適なURLを生成しません

Html.ActionLink(linkText, action, controller, new { id = myid }) 

ただし、新しいウィンドウでページを開くためのURLを取得する必要があります。私はBuildUrlFromExpressionForAreasを使ってみましたが、次の形式のURLを与えてくれます:/ Controller/Action?id = myid。

Html.BuildUrlFromExpressionForAreas<MyController>(t => t.Action(myid)) 

これは動作しません - 私は、次の例外を取得:

パラメータの辞書がnull非許容型のパラメータ「ID」のためのヌルエントリが含まれている「可能System.Guid」メソッド「システムのために。 Web.Mvc.ActionResult Resume(System.Guid) '

別のヘルパーメソッドを使用する必要がありますか?

ありがとうございます!

答えて

0

がうまくいけば、より良いアプローチがありますが、平均時間に、ここに私のソリューションです:

1 - アクションに「アクション・リンク」クラスを追加Html.ActionLink(linkText、アクション

リンク、 コントローラ、新しい{ID = MYID}、新しい{ @クラス= 'アクション・リンク'})

2 - 使用しjqueryのは、生成されたURLを取得し、クリックイベントにバインドし、にHREFを設定します#

 $(document).ready(function() { 
      $(".action-link").each(
       function (index, el) { 
        var url = $(this).attr("href"); 
        $(this).attr("href", "#").bind("click", 
         function() { 
          var options = "resizable=yes,scrollbars=yes,toolbar=no,status=no,menubar=no"; 
          window.open(url, "Interview", options, true); 
         }); 
       } 
      ); 
     }); 
関連する問題