我怎么能/应该在ASP.NET MVC 3中创建一些“自定义控件”?我对部分观点感兴趣,ViewUsersControl
,Html.RenderAction
,但我仍然不知道,哪种方式是适合剃刀观看的MVC方式。
如果我需要渲染一些ajax组件来查看,我可以想象通过局部视图来做,但是如果我想用自定义逻辑渲染节呢?
答案 0 :(得分:21)
答案 1 :(得分:8)
您可以使用
@{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
check this out
答案 2 :(得分:1)
除了这篇文章的所有其他答案,我还可以为您提供EditorFor和DisplayFor模板的使用。当您想要轻松渲染或编辑自定义类型时,这些功能非常有用。它会很好地处理验证(使用部分时可能会很奇怪)并且你可以递归地嵌套它们(再次是另一个在你需要它之前不太方便的功能)。
您还可以使用Html.RenderAction()
或Html.Action()
在视图中调用其他控制器操作,并在页面中以内嵌方式显示结果。这可能是最接近你需要的,因为它允许你在控制器中渲染部分包含代码,并且它还允许传递参数。
链接至:
答案 3 :(得分:0)
正如您所提到的,您可以使用部分视图。 是的,您可以使用部分视图,这是最有效和最有效的方式。
对于Ajax渲染,您始终可以使用
@using (Ajax.BeginForm("Details", new { id = Model.Post.PostId }, new AjaxOptions
{
您希望看到的链接很少