标签: spark-view-engine

ASP.NET MVC视图引擎比较

我一直在搜索SO和Google,了解可用于ASP.NET MVC的各种视图引擎,但是没有找到比视图引擎的简单高级描述更多的内容.

我不一定在寻找"最佳"或"最快",而是在各种情况下对主要参与者(例如默认的WebFormViewEngine,MvcContrib View Engines等)的优缺点进行实际比较.我认为这对确定从默认引擎切换是否对给定项目或开发组有利有用.

有没有人遇到这样的比较?

asp.net-mvc viewengine spark-view-engine razor

338
推荐指数
5
解决办法
10万
查看次数

如何在ASP.NET MVC中获取模型状态错误的集合?

如何在视图中获取错误集合?

我不想使用Html Helper验证摘要或验证消息.相反,我想检查错误,如果有任何显示特定格式.另外在输入控件上我想检查特定的属性错误并在输入中添加一个类.

PS我正在使用Spark View Engine,但这个想法应该是一样的.

所以我想我可以做点像......

<if condition="${ModelState.Errors.Count > 0}">
  DispalyErrorSummary()
</if>

....and also...

<input type="text" value="${Model.Name}" 
       class="?{ModelState.Errors["Name"] != string.empty} error" />

....
Run Code Online (Sandbox Code Playgroud)

或类似的东西.

UPDATE

我的最终解决方案如下所示:

<input type="text" value="${ViewData.Model.Name}" 
       class="text error?{!ViewData.ModelState.IsValid && 
                           ViewData.ModelState["Name"].Errors.Count() > 0}" 
       id="Name" name="Name" />
Run Code Online (Sandbox Code Playgroud)

如果此属性有错误,则仅添加错误css类.

html validation asp.net-mvc spark-view-engine

145
推荐指数
6
解决办法
13万
查看次数

ASP.NET MVC局部视图:输入名称前缀

假设我有ViewModel之类的

public class AnotherViewModel
{
   public string Name { get; set; }
}
public class MyViewModel
{
   public string Name { get; set; }
   public AnotherViewModel Child { get; set; }
   public AnotherViewModel Child2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在视图中,我可以渲染部分

<% Html.RenderPartial("AnotherViewModelControl", Model.Child) %>
Run Code Online (Sandbox Code Playgroud)

在部分我会做

<%= Html.TextBox("Name", Model.Name) %>
or
<%= Html.TextBoxFor(x => x.Name) %>
Run Code Online (Sandbox Code Playgroud)

但是,问题是两者都将呈现name ="Name",而我需要name ="Child.Name"才能使模型绑定器正常工作.或者,当我使用相同的局部视图渲染第二个属性时,name ="Child2.Name".

如何使我的局部视图自动识别所需的前缀?我可以将它作为参数传递,但这太不方便了.当我想要例如以递归方式呈现它时,情况会更糟.有没有办法用前缀渲染部分视图,或者更好的是,通过自动重新调用lambda表达式来实现

<% Html.RenderPartial("AnotherViewModelControl", Model.Child) %>
Run Code Online (Sandbox Code Playgroud)

会自动添加正确的"孩子".生成的名称/ id字符串的前缀?

我可以接受任何解决方案,包括第三方视图引擎和库 - 我实际上使用Spark View引擎(我使用它的"解决"问题)和MvcContrib,但没有在那里找到解决方案.XForms,InputBuilder,MVC v2 - 提供此功能的任何工具/洞察都会很棒.

目前我考虑自己编码,但这似乎是浪费时间,我不敢相信这些琐碎的东西还没有实现.

可能存在许多手动解决方案,欢迎所有这些解决方案.例如,我可以强制我的部分基于IPartialViewModel <T> {public string Prefix; T模型; …

asp.net-mvc spark-view-engine mvccontrib

119
推荐指数
7
解决办法
5万
查看次数

在独立应用程序中使用Spark View Engine

我的客户端应用程序需要生成HTML.我想使用像Spark这样的模板/视图引擎解决方案,但我不确定Spark是否可以在ASP.NET应用程序之外使用.有没有人知道以这种方式使用Spark的任何样本或文档?

(如果您知道可以单独使用的其他视图引擎解决方案,我也很想知道这些.)

c# spark-view-engine

15
推荐指数
1
解决办法
3015
查看次数

ASP.NET MVC的Spark T4模板

我只是好奇是否已经存在任何匹配/类似于开箱即用的Web表单视图模板(创建,编辑,详细信息等)的Spark T4模板.我的Google技能并没有让我得到任何结果.

asp.net-mvc t4 spark-view-engine

14
推荐指数
1
解决办法
974
查看次数

ASP.NET MVC Spark视图引擎

为ASP.NET MVC项目使用Spark视图引擎的优点(正面).为什么它比默认视图引擎更好?

asp.net-mvc spark-view-engine

13
推荐指数
2
解决办法
2878
查看次数

ASP.NET MVC电子邮件

他们是使用ASP.NET MVC View生成电子邮件模板的解决方案,而不必跳过篮球.

让我详细说明跳过篮球.

var fakeContext = new HttpContext(HttpContext.Current.Request, fakeResponse);
var oldContext = HttpContext.Current;
HttpContext.Current = fakeContext;
var html = new HtmlHelper(new ViewContext(fakeControllerContext,
  new FakeView(), viewDataDictionary, new TempDataDictionary()),
  new ViewPage());
html.RenderPartial(viewName, viewData, viewDataDictionary);
HttpContext.Current = oldContext;
Run Code Online (Sandbox Code Playgroud)

上面的代码使用当前的HttpContext伪造一个新的Context并使用RenderPartial渲染页面,我们不应该这样做.

使用ControllerContext和.Render的另一个非常详细的解决方案:(IEmailTemplateService,Headers/Postback WorkAround),但是使用更多代码几乎做同样的事情.

另一方面,我正在寻找能够呈现View而不必POST/GET的东西,并生成一个简单的字符串,我可以通过我的电子邮件代码发送.不会发生错误的事情,例如发布标题两次或伪造一些数据.

EX:

//code which does not fire Render, RenderPartial... etc
var email = emailFramework.Create(viewData, view); 
Run Code Online (Sandbox Code Playgroud)

请参阅我的解决方案或点击此链接:

我的解决方案使用spark:(12/30/2009)ASP.NET MVC电子邮件模板解决方案

c# email asp.net-mvc templates spark-view-engine

13
推荐指数
3
解决办法
5337
查看次数

要火花还是火花?

最近一直在与ASP.MVC 2进行大规模的学习狂欢,最近发现有不同的渲染引擎...... Spark引起了我的注意,但有几件事情.

  1. 我对ASP.NET有丰富的知识,除了ASP.NET MVC之外,它还值得提升
  2. 一般来说值得吗?真的有关系吗?这似乎是对品味的偏好,而不是性能,甚至是显着缩短开发时间.
  3. 它似乎仍然不成熟,不是很好的intellisense支持,语法高亮支持,没有很多工具选项.它仅对MVC 2有初步支持......

你的想法是什么?我倾向于它可能不值得...

asp.net-mvc spark-view-engine

12
推荐指数
3
解决办法
1506
查看次数

ASP.NET MVC视图引擎解析序列

我创建了一个简单的ASP.NET MVC 1.0版应用程序.我有一个ProductController,它有一个动作索引.在视图中,我在Product子文件夹下创建了相应的Index.aspx.

然后我引用了Spark dll并在同一Product视图文件夹下创建了Index.spark.Application_Start看起来像

    protected void Application_Start()
    {
        RegisterRoutes(RouteTable.Routes);

        ViewEngines.Engines.Clear();
        ViewEngines.Engines.Add(new Spark.Web.Mvc.SparkViewFactory());

        ViewEngines.Engines.Add(new WebFormViewEngine());

    }
Run Code Online (Sandbox Code Playgroud)

我的期望是,由于Spark引擎在默认WebFormViewEngine之前注册,当浏览Product controller中的Index操作时,应该使用Spark引擎,并且WebFormViewEngine应该用于所有其他URL.

但是,测试显示Product控制器的Index操作也使用WebFormViewEngine.

如果我注释掉WebFormViewEnginer的注册(代码中的最后一行),我可以看到Index动作由Spark引擎呈现,其余的URL生成错误(因为defualt引擎已经消失),它证明了我所有的Spark代码是正确的.

现在我的问题是视图引擎是如何解决的?为什么注册序列不生效?

asp.net-mvc viewengine spark-view-engine

10
推荐指数
1
解决办法
3447
查看次数

简单的ASP.NET MVC视图,无需编写控制器

我们正在构建一个代码非常少的网站,它主要是提供一堆静态页面.我知道随着时间的推移会发生变化,我们会想要交换更多动态信息,因此我决定继续使用ASP.NET MVC2和Spark视图引擎构建Web应用程序.将有一些控制器必须进行实际工作(如/ products区域),但大多数都是静态的.

我希望我的设计师能够构建和修改网站,而无需每次他们决定添加或移动页面时都要求我编写新的控制器或路由.因此,如果他想添加一个" http://example.com/News "页面,他只需在Views下创建一个"News"文件夹,并在其中放置一个index.spark页面.然后,如果他决定要一个/新闻/社区页面,他可以删除该文件夹中的community.spark文件并让它工作.

通过使控制器覆盖HandleUnknownAction,我可以在没有特定操作的情况下获得视图,但我仍然需要为每个文件夹创建一个控制器.每次他们决定向网站添加区域时,必须添加一个空控制器并重新编译似乎很愚蠢.

有没有办法让这更容易,所以我只需要编写一个控制器并重新编译,如果有实际的逻辑要做?某种"主"控制器将处理没有定义特定控制器的任何请求?

spark-view-engine asp.net-mvc-2

10
推荐指数
1
解决办法
2万
查看次数