2017-01-31 9 views
0

データを別のルートに渡そうとしています。私はフォームアクションとUrl.Actionを使用しますが、うまくいきませんでした。別のビューにはルーティングされません。 Url.Actionでアンカータグhrefを使用すると動作しますが、あるコントローラメソッドから同じコントローラに異なるメソッドを渡すにはどうすればいいですか?DotNetNuke MVCモジュールが異なるルートにデータを渡す

+0

あなたが試したことを示すコードはありますか?何が成功し、何を達成しようとしていますか? –

+0

この質問に更新がありましたか? – DotNetNuclear

答えて

0

GithubのDNN MVCモジュールの例が参考になります。 https://github.com/DotNetNuclear/DnnRestaurantMenu/blob/master/RestaurantMenu.MVC。 「リリース」リンクの下にあるインストールパッケージを見つけることで簡単にインストールできます。

デフォルト/インデックスビューを見ると、編集ビューを開くためのリンクがあります。アイテムIDが渡された場合は、編集フォームにデータがロードされます。アイテムIDがない場合は、新しい(追加)アイテムとみなされます。

私のView.cshtmlでは、ボタンのhrefを形成するDNNのUrl.Actionヘルパーを使用します。 (https://github.com/DotNetNuclear/DnnRestaurantMenu/blob/master/RestaurantMenu.MVC/Views/Menu/Index.cshtml

<a class="btn btn-default" href="@Url.Action("Edit", "Menu", new {ctl = "Edit", itemId = item.MenuItemId})">@Dnn.LocalizeString("EditItem")</a> 

最初のパラメータは、モジュール制御キー/アクションです。 2番目はコントローラ名です。 Url.Actionの3番目のパラメータでは、コントロール型と追加のクエリ文字列パラメータを渡します。この場合、ビューのモデル内にあるアイテムIDです。

私のMenuControllerのEdit()アクションでは、アイテムIDパラメータをデータベースから検索してからEditビューを返すことができます。

public ActionResult Edit(int itemId = -1) 
{ 
    ... 

    if (itemId > 0) 
    { 
     item = _menuController.GetItem(itemId, CurrentModuleId); 
    } 

    ... 
} 
関連する問題