我目前正在为ASP.NET MVC中的网站构建Admin后端.
在ASP.NET MVC应用程序中,我开始使用'EditorFor'辅助方法,如下所示:
<div id="content-edit" class="data-form">
<p>
<%= Html.LabelFor(c => c.Title) %>
<%= Html.TextBoxFor(c => c.Title)%>
</p>
<p>
<%= Html.LabelFor(c => c.Biography) %>
<%= Html.EditorFor(c => c. Biography)%>
</p>
</div>
Run Code Online (Sandbox Code Playgroud)
在模型中,"传记"字段已经用以下内容进行了装饰:[UIHelper("Html")].
我有一个'Html'局部视图(在Views/Shared/EditorTemplates下):
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.XML.Linq.XElement>" %>
<textarea class="html">
<%= Model.ToString() %>
</textarea>
Run Code Online (Sandbox Code Playgroud)
现在我想将'textarea'的'ID'属性设置为字段的名称,如下所示:
<textarea id="Biography" class="html">
...
</textarea>
Run Code Online (Sandbox Code Playgroud)
但是我无法通过当前的设置看到这样做的方法.
我能想到的只是创建一个'Html'ViewModel,它包含'Value'属性和'ControlID'属性.
但是如果我基于这个视图,而不是'System.XML.Linq.XElement',它将不再与'EditorFor'辅助方法兼容,我必须手动完成所有操作.
有没有人有类似的问题呢?
我正在寻找创建一个相当大规模的ASP.NET MVC项目,我想打破它,以便它不是一个项目和一个程序集.
我看了一下Oxite如何组织他们的组织(http://oxite.codeplex.com/Wiki/View.aspx?title=architecture),但我想知道其他人是如何做到的.有什么建议?
目前,我正在考虑与Oxite非常相似的东西:
项目 - 此项目包含模型层,其中包括服务和存储库的模型,配置类和接口.这里应该没有太多的应用程序逻辑,主要是数据结构.
Project.Core - 该项目包含控制器和路由的所有代码,包括过滤器和结果.这里还包括ViewData模型.
Project.Site - 此项目包含Views,images,javascript和所有其他静态非代码文件.这里应该有最少的C#代码,大多数应该存在于Project.Core中