4
はMVC3パーシャルビューにはコントローラが必要ですが、非公開にすることはできますか?
Html.RenderAction(...)
しかし、その同じコントローラは、URLを介してアクセスされることなくを使用して別のビューから呼び出すことができるコントローラを備えており、部分的なビューを作成することが可能です?
したがって、たとえば
public class ArticlesController : Controller
{
public ActionResult HomeList()
...
}
は私のWebページの下部の最新記事の一覧を提供します。
私は誰かが
mysite.com/Articles/HomeList
とで同じリストを見に来たくないしかしだから私は
_Layout.cshtml
からこれを呼び出しますさまざまな理由(セキュリティ、SEOなど)
ありがとう
編集:
私は自分の属性クラスを使用して終了、ラスの助けのおかげで:
public class ChildActionOnly404Attribute : FilterAttribute, IAuthorizationFilter
{
void IAuthorizationFilter.OnAuthorization(AuthorizationContext filterContext)
{
if (!filterContext.IsChildAction)
{
throw new HttpException(404, "");
}
}
}
ありがとうRuss素晴らしい答え。サーバーエラーではなく404を投げる方法を知っていますか?それは理想的なので。 –
これを行うには、独自のAction/Authorization FilterAttributeを記述する必要があります。 'OnAuthorization'の中で' filterContext.IsChildAction'をチェックし、子アクションでなければ新しい 'HttpException(404、"エラーメッセージ ")をスローすることができます。 –
おかげで再びラス –