[英]How to create a reusable solution for asp.net mvc ValidationMessageFor
[英]How to create reusable control in ASP.NET MVC
我怎么能/应该在ASP.NET MVC 3中创建一些“自定义控件”? 我有关于部分视图的红色, ViewUsersControl
, Html.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()
显示结果。 这可能是最接近您需要的,因为它允许您在控制器中呈现部分包含代码,并且还允许传递参数。
链接到:
正如您所提到的,您可以使用部分视图。 是的,您可以使用部分视图,这是最有效和最有效的方式。
对于Ajax渲染,您始终可以使用
@using (Ajax.BeginForm("Details", new { id = Model.Post.PostId }, new AjaxOptions
{
您希望看到的链接很少
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.