我的项目中的其中一个视图的当前代码是一个庞大的,单一的,我只是想组织它。在ASP.NET MVC视图中放置方法是否正确?是否适用于在ASP.NET MVC视图中放置方法?
0
A
回答
4
我会说绝对不是。 MVC的目的是分离关注的问题,即模型 - 视图 - 控制器。在你的情况下,你正在混合模型/控制器逻辑与你的视图。
如果您需要将复杂内容传递到您的视图中,您应该创建自定义ViewData
类,将它们填充到您的控制器中并将它们传递到您的视图中。
如果你的方法更关注于生成视图标记,你应该把它分解成部分视图或者已经建议使用助手扩展方法。
1
这是可能的,但如果您需要视图内的方法,或许您应该考虑用扩展方法扩展Html对象,然后从视图内部使用这些方法。 我喜欢根据功能分隔我的扩展,以保持视图可读。 例如:
public static MySpecialDateHelper SpecialDateHelper(this HtmlHelper helper)
{
return new MySpecialDateHelper(helper);
}
public class MySpecialDateHelper
{
// Fields
private HtmlHelper m_helper;
private StringBuilder m_sb = new StringBuilder();
// Methods
internal MySpecialDateHelper(HtmlHelper helper)
{
this.m_helper = helper;
}
// Print date prettily
public public string PrettyDate(datetime target)
{
// format however
return string.format("pretty {0}", target.ToString());
}
// Print date prettily
public public string PrettyDateInATextbox(datetime target)
{
return m_helper.TextBox("prettyid",PrettyDate(target));
}
// etc...
}
在视图
然后,你只需要参考刚刚创建
<%= Html.SpecialDateHelper.PrettyDateInATextbox(Now); %>
病程的延长,你的方法分离成扩展可能会发生变化,也可以延长直接使用HtmlHelper对象,但我更喜欢这种方法
1
编号
移动控制器,必要时引入视图模型。在那之后,定义你自己的Html助手,考虑到这些应该是HTML的东西,而不是任何逻辑。
你可能在视图中有一些特定于v。v。的特定代码,并且它只是不可能在代码之外做任何事情。但即使如此,只要名称清晰明了,你就可以将其定义在助手中,而不是将其放在视图中。你可以单元测试助手,所以这样做有明显的优势。
相关问题
- 1. 在Asp.Net MVC中是否存在视图?
- 2. ASP.NET MVC 2:OnPreAction方法是否存在于Controller类中?
- 3. 从视图调用方法ASP.NET MVC
- 4. 索引是否适用于视图?
- 5. 无法在IIS7中运行时在ASP.NET MVC视图中放置断点
- 6. ASP.NET MVC是否可以在局部视图中使用ajax.beginform?
- 7. 在ASP.NET MVC中放置Html.BeginForm()
- 8. ASP.NET MVC 3:在视图中使用枚举扩展方法
- 9. 如何在ASP.NET MVC视图中使用扩展方法?
- 10. 无法在下方放置视图RecyclerView
- 11. ASP.NET MVC 3视图,超类不适用于子类?
- 12. 如何在asp.net MVC的另一个视图中放置一个视图?
- 13. 是否有可能在视图中创建会话在asp.net mvc?
- 14. AngularJS不适用于MVC部分视图
- 15. AngularJS不适用于MVC部分视图
- 16. ASP.NET MVC 3 JSONP:这是否适用于JsonValueProviderFactory?
- 17. ExpressiveAnnotations适用于添加视图,但不适用于编辑视图MVC 5
- 18. MVC中的好方法放置
- 19. 如何确定ASP.NET MVC 3中是否存在视图?
- 20. 在ASP.NET MVC中,最好的方法是键入还是不键入视图?
- 21. setVisible()方法不适用于放置在JPanel上的JButton
- 22. 在ASP.NET MVC视图
- 23. Nerddiner是否适合ASP.NET MVC 2?
- 24. C#扩展方法是否仅适用于实例方法?
- 25. 关于在ASP.NET MVC中放置AntiXSS调用的建议
- 26. 无法在视图中显示配置文件ASP.NET MVC
- 27. 用于处理ASP.NET MVC 3视图中的常见数据的方法
- 28. 如何在asp.net mvc c#中从视图访问类方法?
- 29. @ grid.GetHtml方法在asp.net MVC视图中找不到
- 30. 在ASP.NET MVC中初始化视图模型的不同方法
我认为这绝对没有。但是我建议你给我们一个你会写的方法类型的例子,然后我们可以给你一些选择。 – 2010-09-21 10:56:01