Asp.net Mvc自定义内容管理区域,如webforms用户控件

时间:2014-02-15 11:22:08

标签: asp.net asp.net-mvc caching webforms user-controls

在asp.net Web表单中,我们将用户控件作为页面的可重用组件。这些用户控件可以通过公共属性从外部传递值,例如在Web表单上,我们可以通过将key设置为此用户控件的公共属性来删除此用户控件以显示来自db(如内容管理系统)的文本,它将提取该值。 (此键,值可以作为列表或字典存储在应用程序缓存中,以避免数据库往返)。

我想在asp.net mvc中实现相同的想法,但对它来说是新的。任何专家建议实施相同的想法将是非常有帮助的?感谢

1 个答案:

答案 0 :(得分:2)

用户控件的概念是PartialView;有两种方法可以使用局部视图。第一种是在视图中定义一个部分:

@Html.Partial("NameOfViewInControllerFolder", ModelForPartialview)

第二种方法是使用一个返回局部视图的动作方法:

public ActionResult X()
{
   return PartialView("NameOfView");
}

从你的观点来看:

@Html.Action("X", "ControllerName")

然后调用action方法,并插入结果。要确保仅在视图中调用操作,可以使用[ChildActionOnly]属性。

如果是动作方法,您可以使用JQuery通过AJAX请求它​​,并将结果加载到视图中:

$.ajax({ 
    type: "GET|POST", 
    url: "@Url.Action("X", "ControllerName")", 
    success: function(d) { /* d is HTML */ });