我们公司需要构建一个包含50多种表单的基于Web的业务线解决方案。其中很多都是中央数据库上的CRUD。到目前为止,我们还没有解决过网络空间,所以这对我们来说都是相对较新的。
目前我们正在计划使用ASP.net MVC:
然而,我们遇到了障碍。经过对各种论坛和教程视频的大量研究后,我们认识到ASP.net MVC不支持拖放式设计环境。
我们已经在ASP.net MVC中使用代码模板等进行了调查,这些肯定会加速在代码中构建视图。事实上,大多数论坛建议使用代码模板等。
然而,我们公司的应用程序构建和修改通常具有非常快的周转率。 有时我们需要推出第二天或第二周的更新。
我们觉得没有一个视图设计工具可能会妨碍我们。
到目前为止,我们已考虑/调查过以下内容:
在代码中构建Visual Studio。在第二个屏幕上刷新在IDE旁边运行的网站。调整冲洗 并重复。
使用Microsoft Expression产品。 (Expression Web等)。构建视图等然后在Visual中重新加载 Studio负责代码背后的工作。但是我认为我在这不是ASP.net MVC中测试了WebForms。
使用Dreamweaver(或其他)等网页设计工具,然后将视图/页面的html复制到视觉效果中 工作室和挂钩代码等等。
使用LightSwitch代替(我们不想要Silverlight,这似乎是一个liitle 对我们的要求过于简单,所以这是不可能的。)
我们认为也许其他人也有类似的经历,可以分享他们的想法。
所以我的问题是,如果你们中的任何一个人有类似的情况,你使用了哪些工具来设计ASP.net MVC视图,同时保持快速轻松地构建新UI或进行调整的能力?
答案 0 :(得分:2)
在我看来,如果你遵循一些提示,在代码中构建UI的速度比在拖放环境中快得多:
我知道语义狂热分子会试图用这句话来杀我,但是你的表单看起来会更好,你不必在几个浏览器中对抗CSS。节省了大量时间。
对于裸体,我的意思是让你的输入看起来像:
<tr>
<th>@Html.LabelFor(model => model.Name)</th>
<td>@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</td>
</tr>
依靠MVC EditorFor
,编辑模板和UIHint为您的应用制作标准输入类型。在我的应用程序中,我有文本,十进制数字,整数,日期,时间,月,笔记(textarea)的模板。我已经调整了模板,以便为自定义装饰提供更多属性。
这会以某种方式打破MVC规则,但它也节省了大量时间,并避免多次处理控制器中的SelectList
我通常有这样的代码
public class ProductType
public static SelectList GetSelectList(int? ValorActualSeleccionado, string IncludeAllItemsText = "") {
var lista = DbHelper.CurrentDb().Fetch<ProductType>(BaseQuery());
if (!IncludeAllItemsText.IsEmpty()) {
lista.Insert(0, new ProductType { Name = IncludeAllItemsText, ProductTypeID = 0 });
}
return new SelectList(lista, "ProductTypeID", "Name", ValorActualSeleccionado);
}
并在视图中:
@Html.DropDownList("ProductTypeID", ProductType.GetSelectList(Model.ProductTypeID))
您无需查看收集几乎相同的数据,只需将其添加到您的控制器:
public ViewResult NewProduct() {
var VM = new Product();
return View("Edit", VM );
}
这是您的编辑视图:
@using (Html.BeginForm("Edit", "Product")) {
添加逻辑以在同一位置添加或编辑。
使用jQuery,您可以在系统范围内插入一些插件(如数字或日期下拉),而无需更改视图中的代码
答案 1 :(得分:0)
如果您需要具有良好的拖放体验并且没有webdev经验,我将继续使用rad-controlls和旧式ASP.NET。
如果你更接近HTML,Javascript和HTTP,ASP.NET MVC会发光。你可以在不知道很多关于网络的情况下使用旧式的ASP.NET和rad-controlls进行相当远的研究。