2016-10-19 5 views
1

私はレイアウトページを持っていますが、下側にはコントローラのメソッドを呼び出して部分的なビューを返すコードがあります。@ Html.Action( "Method"、 "Controller")がレイアウトをレンダリングしています

ローカルで動作します。しかし、サーバーにデプロイすると、@Html.Action("Method", "Controller")が私のレイアウトを再びレンダリングするようです。

Html.Actionは正しいことですか?私はコントローラメソッドを呼び出すことによって部分的なセクションをレンダリングする必要があります。コントローラからの部分ビューを返す必要があります。

私は@Html.Partialまたは@Html.RenderPartialがもっと正しいと思いましたが、必要な引数(コントローラとメソッド)を受け入れていないようです。

+0

より効率的にするには、 '@ {Html.RenderAction} 'と置き換えることができます。しかし、 '@ Html.Action'もやるべきことです。あなたが何かを見逃しているかもしれません。 –

+0

レンダリング中のアクションのコードを表示できますか? – Kamo

+0

あなたの答えは正しいです。私はViewResultを返していました。 – Craig

答えて

1

あなたの行動には、PartialViewResultの代わりにViewResultが返されているようです。前者にはレンダリング時にマスターページも含まれています。

両方のクラスを比較すると、MasterNamePartialViewResultであり、大きな相違点が見つからないことがわかります。 ViewResultを使用すると、マスターはたとえば_ViewStart.cshtmlから。

+0

これは確かに当てはまりました。ありがとう。 – Craig

1

は、コントローラを返すあなたの部分図の(あなたが@modelを持っている場合、その下に置く)上に

@{ 
    Layout = null; 
} 

を入れてください。

+1

これも問題を解決しました。ありがとう。より正確に見えるように、「PartialViewResult」が返されました。 – Craig

関連する問題