2009-06-08 33 views
1

私は単純な部分的な見解を持っています。主な部分は以下の通りです。この部分的な表示が別のコントローラによって管理されているページに表示されている場合、どのようにしてActionLinksを適切に解決させることができますか。言い換えれば、この部分図は、特定のプロジェクトのプロジェクトエリアを示しています。このPVがProject Controllerによって管理されているページに表示される場合はどうなりますか?デフォルトのルート動作では、このコードで/ Project/EditまたはProject/Detailを実行しようとします。それは本当に私が必要なものではありません。代わりに/ ProjectArea/Editに移動する必要があります。この場合、どのように達成されますか?条件付きルーティング?

<% foreach (var item in Model) { %> 

    <tr> 
     <td> 
      <%= Html.ActionLink("Edit", "Edit", new { id=item.ProjectAreaId }) %> | 
      <%= Html.ActionLink("Details", "Details", new {id=item.ProjectAreaId })%> 
     </td> 
     <td> 
      <%= Html.Encode(item.Name) %> 
     </td> 
    </tr> 

<% } %> 

答えて

3

コントローラ文字列を取るActionLinkオーバーロードを使用する必要があります。

HtmlHelper.ActionLink(string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes) 

あなたはコントローラ名を識別するために使用することができます「アイテム」オブジェクトのプロパティがあります:私は署名のように見えると思いますか?おそらくコントローラ名としていくつかの他のviewdata値を設定することができます。

HTHS、 チャールズ

+1

どういうわけか、私は、使用中のより強固なものがあるかもしれないと思いました。私はおそらくベースモデルと、その親またはそのコントローラを指している部分的なビューのプロパティのいくつかの並べ替えを持っていると思って...私はベストプラクティスが何であるかわからないので – etechpartner