我正在使用最初从CodeBetter.Canvas项目启动的ASP.NET MVC项目- 我正在尝试迁移到ASP.NET MVC 2.我使用Eilon的升级工具成功升级了我的项目,转移到VS2010(尽管还没有.NET 4).
我目前遇到的问题只发生在使用spark视图引擎时.以下是我的View.spark中的相关代码(强类型):
${Html.EditorFor(e => e)}
Run Code Online (Sandbox Code Playgroud)
如果我使用.aspx视图,相同的代码就可以正常工作:
<%= Html.EditorFor(e => e) %>
Run Code Online (Sandbox Code Playgroud)
这里的主要观点是"EditorFor"是ASP.NET MVC 2中的新功能,在我的项目中,我可以在ASPX视图中使用该帮助程序,但不能在Spark视图中使用.
我已经尝试升级Spark以使用MVC 2(以及MvcContrib和Ninject),想想也许这是其中一个吓坏了 - 但到目前为止没有运气 - 我仍然看到相同的行为.
以下是Spark的BatchCompiler类中抛出的完整错误消息.
动态视图编译失败.(0,0):警告CS1701:假设程序集引用'System.Web.Mvc,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'匹配'System.Web.Mvc,Version = 2.0.0.0,Culture = neutral ,PublicKeyToken = 31bf3856ad364e35',您可能需要提供运行时策略c:\ inetpub\wwwroot [myproject]\CodeBetter.Canvas.Web\Views [MyEntity]\View.spark(9,16):错误CS1061:'System.Web .Mvc.HtmlHelper'不包含'EditorFor'的定义,也没有扩展方法'EditorFor'接受类型为'System.Web.Mvc.HtmlHelper'的第一个参数'(你是否缺少using指令或程序集引用) ?)
这是我的Global.asax中与Spark相关的代码:
var settings = new SparkSettings()
.AddNamespace("System")
.AddNamespace("System.Collections.Generic")
.AddNamespace("System.Web.Mvc")
.AddNamespace("System.Web.Mvc.Html")
.AddNamespace("MvcContrib.FluentHtml")
.AddNamespace("CodeBetter.Canvas")
.AddNamespace("CodeBetter.Canvas.Web")
.SetPageBaseType("ApplicationViewPage")
.SetAutomaticEncoding(true);
#if DEBUG
settings.SetDebug(true);
#endif
var viewFactory = new SparkViewFactory(settings);
ViewEngines.Engines.Add(viewFactory);
Run Code Online (Sandbox Code Playgroud)
此外,我在我的火花视图中引用System.Web.Mvc.Html,如另一个SO答案中所述 …
即使在web.config的spark部分中有以下内容:
<pages automaticEncoding="false">
Run Code Online (Sandbox Code Playgroud)
${...}Still 之间的事情通过H(...),HTML编码它.
如何改变这一点或者我应该回归!{...}?
是否可以使用多个视图引擎?我有一个已经在使用webforms视图引擎的大型(ish)网站,但我们希望转向引发新功能.
这支持吗?任何在线文档详细说明如何做到这一点?
我想知道是否对asp.net MVC的"最佳"替代视图引擎有一个普遍的共识.到目前为止,我知道Spark,Brail,NHaml,但其他人呢?
如何注释掉Spark视图的某些部分,以便它们不会呈现给客户端?
在aspx页面中我可以这样做:
<%-- server-side comment --%>
Run Code Online (Sandbox Code Playgroud)
我以为使用三个破折号会起作用:
<!--- server-side comment --->
Run Code Online (Sandbox Code Playgroud)
但它不起作用,我现在无法找到我读到的资源.
我的任务是在我们的应用程序套件中添加一个网站构建器.我们的大多数客户都是非技术性的小企业主(实体店,妈妈和流行商店).我被告知我应该看看Blogger模板编辑器,并试着看看我是否可以制作功能齐全且易于使用的东西.我们的想法是,我们的客户应该能够在不了解Web开发的情况下将他们的业务带到网上.
我主要使用c#和silverlight进行日常工作.因此,使用.net可能是最好的选择.ASP.NET MVC和SPARK看起来很有吸引力,但我不太清楚我将如何完成以下事情
1-如何构建模板系统,允许设计人员创建使用特定格式并与我的应用程序兼容的模板.那有没有通用的框架?
2-我如何坚持客户对他/她的网站所做的更改(例如客户更改背景颜色并在页面上添加成分列表).
编辑:是的我知道这是一项重大任务,我可能正在考虑编写一个完整的CMS,但是我们的客户需要非常有限的基本功能才能开始,我想这将是一个迭代过程,可能会有更多开发人员加入如果产品证明是成功的话.我会告诉我们的经理这些问题.
最初我计划给他们一些模板化的布局,并允许他们使用CSS自定义各个部分以及颜色和图像.HAML和Sass看起来很有用,我可以在数据库中保留所有用户可自定义的参数.
我是想沿着正确的方向思考还是完全不在这里?
我正在使用我的asp.net mvc应用程序的spark视图引擎.在我的aspx页面中,我可以成功使用Html.Actionlink,但是当我在spark文件中尝试它时,它并没有出现在intellisense中,当我尝试运行它时,无论如何,我得到:
动态视图编译失败.c:\ Users\midas\Documents\Visual Studio 2008\Projects\ChurchMVC\ChurchMVC\Views\Home\Index.spark(73,25):错误CS1061:'System.Web.Mvc.HtmlHelper'不包含可以找到'ActionLink'并且没有扩展方法'ActionLink'接受类型'System.Web.Mvc.HtmlHelper'的第一个参数(你是否缺少using指令或汇编引用?)
我引用了system.web.mvc,并在_global.spark中添加了.这些都没有帮助.有任何想法吗?
有没有更好,更清洁,设置selected ="true"的方法?也许是嵌套的?
<select id="State" name="State" if="(Model.StateList.Count() > 0 )" >
<option value="">Select One</option>
<for each="KeyValuePair<string, string> item in Model.StateList">
<option value="${item.Value}" if="(Model.State == item.Value)" selected="true" >${item.Key}</option>
<option value="${item.Value}" if="(Model.State != item.Value)">${item.Key}</option>
</for>
</select>
Run Code Online (Sandbox Code Playgroud) 我试图用TinyWeb框架和Spark视图引擎渲染一个简单的视图.
Enviroment是Visual Studio 2011开发人员预览版和.net 4.5版
渲染没有模型绑定的模板工作正常.但是,当我绑定模型时,它不再有效.
我收到此错误:当前上下文中不存在名称"Model".
处理器:
public class IndexHandler
{
Route route = new Route("/");
public IResult Get()
{
var model = new { message = "Hello World" };
return View.Spark(model, "Views/base.spark");
}
}
Run Code Online (Sandbox Code Playgroud)
视图:
<html>
<head>
<title>This is a test</title>
</head>
<body>
<p>${Model.message}</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我开始使用Spark了.
我在启动火花时遇到了问题.
我从spark官方网站下载,我试图从这个https://spark.apache.org/docs/0.9.0/quick-start.html快速启动
我已下载,设置sparkhome.,当我尝试从bin目录运行./pyspark时出现此错误:
soundarya@soundarya:~/Downloads/spark-1.5.0/bin$ sudo ./pyspark
[sudo] password for soundarya:
ls: cannot access /home/soundarya/Downloads/spark-1.5.0/assembly/target/scala-2.10: No such file or directory
Failed to find Spark assembly in /home/soundarya/Downloads/spark-1.5.0/assembly/target/scala-2.10.
You need to build Spark before running this program.
soundarya@soundarya:~/Downloads/spark-1.5.0/bin$
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决这个问题吗?
spark-view-engine apache-spark spark-streaming apache-spark-sql pyspark
asp.net-mvc ×6
c# ×2
viewengine ×2
.net ×1
apache-spark ×1
asp.net ×1
html-encode ×1
pyspark ×1
templates ×1
tinyweb ×1
web ×1