在asp.net mvc(razor)中重用组件作为自定义文本字段,跨度等

时间:2013-11-20 06:50:54

标签: c# javascript css asp.net-mvc razor

我是一个在网站上工作的团队的一员,我们发现自己一遍又一遍地重复使用组件。一个例子是我们有一个作为警示灯的跨度。这背后有一些代码(C#),有一些控制颜色和文本的属性,一些Javascript以及一些自定义css。

我注意到Visual Studio中有一个工具箱,它有一些基本组件可以拖入我的标记。这是一种可行的方式,还是在涉及这个“问题”时还有其他可能性吗?

如果可能的话,我们希望将一些可重用的组件构建到一个程序集中,可以在需要时在我们的项目中引用,我想分别包含CSS和Javascript(?)

关于最佳实践/最实用的解决方案/教程的任何建议都会有所帮助,因为我对Asp.net MVC的主题不太了解。

另外,如果错误地指出了这个问题,请告诉我。就像我说的......新世界:)

2 个答案:

答案 0 :(得分:1)

您有多种方法可以根据需要选择或组合它们。

1。 ASP.NET MVC Html助手。

编写充满静态方法的静态类,然后可以在视图中将其用作帮助程序:

public static class HtmlExtensions
{
    public static IHtmlString ErrorMessage(this HtmlHelper html, string msg)
    {            
        return MvcHtmlString.Create("<span class=\"validation-summary-errors\">"+msg+"</span>");            
    }
}

更多:http://www.asp.net/mvc/tutorials/older-versions/views/creating-custom-html-helpers-cs

甜蜜提示:如果你想使用更多的HTML代码作为助手的输出,你可以使用部分视图,并从helper返回html.Partial(“ErrorMessageTemplate”,msg);

2。剃刀助手

用于格式化一个视图范围内的特定内容。如果您想要更多可重用性,请改用HTML帮助程序。请参阅:http://weblogs.asp.net/scottgu/archive/2011/05/12/asp-net-mvc-3-and-the-helper-syntax-within-razor.aspx

当然,在这两种情况下,你的javascript和CSS都会分成不同的文件,你可以通过jQuery将它们绑定到元素的类或ID。忽略这种做法,你迟早会受苦:)

答案 1 :(得分:1)

首先,工具箱包含为ASP.NET webforms创建的项目,它们不适用于MVC。

重用组件: 我认为MVC最常用的方法是使用部分视图。部分视图也是cshtml文件,它们与普通视图类似。可以创建部分视图,例如当您右键单击“Views”文件夹内的文件夹时,通过解决方案资源管理器中的上下文菜单,有一个复选框“创建为部分视图”。 不同之处是:

  • 可以将它们放在“视图”文件夹中名为“共享”的文件夹中,这样它们就可以在任何视图或操作中轻松重复使用。
  • 他们不使用布局视图
  • 如果某个操作返回部分视图,则操作的返回类型必须/应为“PartialViewResult”
  • 在视图中,您可以使用Html-Helper @ Html.Partial()或“@ {Html.RenderPartial(”Menu“);}”
  • 调用它们
  • 他们也可以是强类型的

我这个局部视图你可以放置HTML。 CSS和JS代码我将放在单独的css和js文件中,并将它们加载到调用局部视图的视图中。

由于您不熟悉MVC,我建议您浏览this等教程。