繁体   English   中英

如何在ASP.NET MVC中创建可重用控件

[英]How to create reusable control in ASP.NET MVC

我怎么能/应该在ASP.NET MVC 3中创建一些“自定义控件”? 我有关于部分视图的红色, ViewUsersControlHtml.RenderAction ,但我仍然不知道,哪种方式是剃刀视图的正确MVC方式。

如果我需要渲染一些ajax组件来查看,我可以想象通过局部视图来做,但是如果我想用自定义逻辑渲染节呢?

1) PartialViews

2) 自定义Html助手

3)儿童行为

更新ASP.NET Core:

2) Tag Helpers是Custom Html helper的首选方式

3)使用视图组件而不是子操作

你可以用

@{Html.RenderPartial("YourCustomView",YourModel);}

例如,在您的Shared文件夹中创建一个新View并将其命名为"_MyCustomControl"

然后在代码中写:

@model YourNameSpace.Models.YourModel

@{
    Layout = null;
}

@*Here write your control's markup*@

然后在你想要使用这个"control"视图中添加:

@{Html.RenderPartial("_MyCustomControl",new YourModel { args });}

如果您在使用RenderPartial遇到问题, 请查看此信息

除了这篇文章的所有其他答案,我还可以为您提供EditorFor和DisplayFor模板的使用。 当您想要轻松渲染或编辑自定义类型时,这些功能非常有用。 它会很好地处理验证(使用partials时可能会很奇怪)并且你可以递归地嵌套它们(再次是另一个功能,在你需要之前它并不是很方便)。

您还可以使用Html.RenderAction()Html.Action()在视图中调用另一个控制器操作,并在页面中以Html.RenderAction()显示结果。 这可能是最接近您需要的,因为它允许您在控制器中呈现部分包含代码,并且还允许传递参数。

链接到:

DisplayFor和EditorFor模板

动作和RenderAction

正如您所提到的,您可以使用部分视图。 是的,您可以使用部分视图,这是最有效和最有效的方式。

对于Ajax渲染,您始终可以使用

     @using (Ajax.BeginForm("Details", new { id = Model.Post.PostId }, new AjaxOptions    
  {

您希望看到的链接很少

使用Ajax在ASP.Net MVC3 Razor中渲染局部视图

在MVC3中使用JQuery渲染部分视图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM