我知道ASP.NET MVC将允许我交换其他人创建的各种View引擎,但我想知道如何创建自己的View引擎?
更多信息: 我们拥有自己的基于网络表单的CMS,关于MVC的主要卖点是它为我们提供了更清晰的HTML(我们的设计师会喜欢).但是,我们希望创建自己的特定于域的View实现.
我需要让最终用户能够安全地编辑asp.net mvc Web应用程序模板,到目前为止,Liquid Template Language似乎是完美的,但它是用Ruby编写的并且移植它似乎对我来说太复杂了,因为我不喜欢不知道Ruby ......有人试图将它移植到C#?在很多情况下它会非常有用,我会积极地帮助你需要什么!
更新:我还发现了一个Javascript版本,这应该可以轻松移植.
我有一个控制台应用程序,要求我发送电子邮件.现在我使用字符串生成器来创建电子邮件,但我想更加喜欢.然后它突然出现在我身上:将我的对象发送到ASP.NET MVC样式视图会很好,我会在其中获得HTML标记,然后将其返回到邮件中.现在,我把它当作;
private void MailJobList(List<Job> newJobs) {
var body = new System.Text.StringBuilder();
var from = new MailAddress("daemon@mydomain.com");
var to = new MailAddress(addresslist.Get());
var message = new MailMessage(from, to);
message.Subject = "New job list";
//mail settings ommitted here for brevity
body.Append("New jobs: ");
if (newJobs.Any()) {
foreach (var newJob in newJobs) {
body.Append(newJob.Job + ", ");
}
}
message.Body = body.ToString();
client.Send(message);
}
Run Code Online (Sandbox Code Playgroud)
显然这只是纯文本,但我真的希望能够做到这样的事情:
var body = RenderHTMLMessage(newJobs);
Run Code Online (Sandbox Code Playgroud)
看起来我应该能够利用ASP.NET MVC的视图引擎(或Spark或任何其他视图引擎)而不是自己动手.如果我在这里取消标记或者有更简单的方法可以做到这一点,我愿意接受建议.
有没有办法使用标准视图引擎(不是火花)通过电子邮件发送ASP.NET视图?
有没有人使用OpenRasta框架的Spark或Razor视图引擎?或者除了WebForms构建之外的任何关于视图引擎的建议?
嗨,我有一个MVC 3应用程序,最近转换为mvc 4并添加了移动视图.我想为iPad专门为平板电脑添加桌面视图的移动显示模式(主要来自此处的流量).
我在我的代码中就是这样的
DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode()
{
ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf("iPad", StringComparison.OrdinalIgnoreCase) >= 0)
});
DisplayModeProvider.Instance.Modes.Insert(1, new DefaultDisplayMode("Mobile")
{
ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf("Mobile", StringComparison.OrdinalIgnoreCase) >= 0)
});
Run Code Online (Sandbox Code Playgroud)
并设置输出缓存changebycustom如下所示
public override string GetVaryByCustomString(HttpContext context, string custom)
{
string strUserAgent = context.Request.UserAgent.ToLower();
if (strUserAgent.Contains("ipad"))
{
return base.GetVaryByCustomString(context, custom);
}
if (Request.Browser.IsMobileDevice)
{
return "mobile";
}
return base.GetVaryByCustomString(context, custom);
}
Run Code Online (Sandbox Code Playgroud)
我在移动设备和桌面设备上都使用相同的网址.
问题: 问题是在将应用程序部署到azure之后.1小时后,移动设备可以获取几个网址的桌面视图.存在不一致.
任何人都可以帮助我,我错了.我甚至关闭了 outputcache仍然是同样的问题.
我在node.js中使用vash收到渲染错误.我真的很想知道问题是什么.下面是错误和导致错误的代码.
TypeError: Problem while rendering template at line 4, character 2.
Original message: object is not a function. Context: 2 |
@html.block('body', function(model){ 3 | <p>@model.title </p> > 4 |
}); 5 | }); 6 | 7 | at helpers.extend.model
(C:\Users\user009\Dropbox\cpp\node_modules\vash\build\vash.js:2213:4)
at Object.vash.loadFile
(C:\Users\user009\Dropbox\cpp\node_modules\vash\build\vash.js:2072:10)
at helpers.extend
(C:\Users\user009\Dropbox\cpp\node_modules\vash\build\vash.js:2190:8)
at eval (eval at <anonymous>
(C:\Users\user009\Dropbox\cpp\node_modules\vash\build\vash.js:1820:24),
<anonymous>:7:21) at vash.link.linked
(C:\Users\user009\Dropbox\cpp\node_modules\vash\build\vash.js:1860:12)
at vash.renderFile
(C:\Users\user009\Dropbox\cpp\node_modules\vash\build\vash.js:2082:21)
at Object.vash.loadFile
(C:\Users\user009\Dropbox\cpp\node_modules\vash\build\vash.js:2070:10)
at View.vash.renderFile [as engine]
(C:\Users\user009\Dropbox\cpp\node_modules\vash\build\vash.js:2078:8)
at View.render
(C:\Users\user009\Dropbox\cpp\node_modules\express\lib\view.js:76:8)
at Function.app.render
(C:\Users\user009\Dropbox\cpp\node_modules\express\lib\application.js:502:10)
Run Code Online (Sandbox Code Playgroud)
路由器:
app.get("/", function (request, response) { …Run Code Online (Sandbox Code Playgroud) 我正在考虑将我的一个项目(以及随后的其他项目之后)切换到Spark View Engine,但在今天的研究之后,我遇到了Visual Studio 2010缺乏Intellisense的问题.不仅如此,似乎该项目是没有定期维护.
所以我有一种感觉,我现在不应该选择Spark.然而,显然NHaml也有同样的"问题".
我知道ASP.NET MVC视图引擎比较在这里有更详细的讨论
但我仍然想你想要选择什么,或者只关注WebForms视图引擎?
我正在为asp.net mvc寻找自定义viewengine的最简单的解决方案.所以我可以越过路径寻找观点.
实际上,我正在尝试在我的解决方案中构建一个主题系统.我查看了网页,但找到了难以学习和实施的解决方案.
谢谢
viewengine ×10
asp.net-mvc ×8
asp.net-4.0 ×1
c# ×1
email ×1
mobile ×1
node.js ×1
openrasta ×1
outputcache ×1
razor ×1
rendering ×1
templates ×1
vash ×1