ASP.Net MVC 2用のカミソリビューエンジンをダウンロードしてインストールします。どこからダウンロードしてインストールできますか?Razor View Engineをダウンロードするには
答えて
おそらく少し古くなっていますが、多分この記事を見てみる必要があります。
http://stefan.rusek.org/Posts/Using-Razor-with-ASP-NET-MVC-in-Four-Easy-Steps/26/
レイザーは、配線を自分で提供することが完全に可能であるように、スタンドアロンを実行することができます。 .NET4を使用する必要があるかどうかに関わらず、私は100%確実ではありません。別のメモでは、MVC3はRCステータスで、Go-Liveライセンスを持っています。これは技術的に今すぐ使用できるようになり、RTMがヒットするとすぐにアップグレードします。
CodeplexのMatthew AbbottとMy Razor View Engineを利用しています。あなたは以下を行うことができます。モデルやレイアウトページはサポートしていませんが、このルートを選択すると正しい方向に向かいます。率直に言って、私はMVC 3にアップデートするだけです。あなただけClear()
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new RazorViewEngine.RazorViewEngine());
:このコードは、あなたがあなたのglobal.asaxに次の行を追加する必要がありますhttp://buildstarted.com/2010/11/22/making-your-own-viewengine-with-markdown/
での私のブログの記事に基づいていました
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Hosting;
using System.IO;
using System.Text.RegularExpressions;
using System.Xml.Linq;
namespace RazorViewEngine {
/// <summary>
/// ViewEngine for the RazorView. Provides basic file handling to load views.
/// </summary>
public class RazorViewEngine : IViewEngine {
string[] SearchLocations { get; set; }
Tuple<string, string, RazorView> Cache { get; set; }
VirtualPathProvider VirtualPathProvider { get; set; }
public RazorViewEngine() {
//{1} == Controller name
//{0} == View name
SearchLocations = new string[] {
"~/Views/{1}/{0}.cshtml",
"~/Views/Shared/{0}.cshtml",
};
VirtualPathProvider = HostingEnvironment.VirtualPathProvider;
}
#region IViewEngine Members
public ViewEngineResult FindPartialView(ControllerContext controllerContext, string partialViewName, bool useCache) {
return CreateView(controllerContext, partialViewName, null, null, useCache);
}
public ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache) {
return CreateView(controllerContext, viewName, masterName, GetLayoutPath(controllerContext), useCache);
}
/// <summary>
/// Meat of the FindView methods.
/// </summary>
/// <param name="controllerContext">The current controller context for this request.</param>
/// <param name="viewName">The requested view name. </param>
/// <param name="masterName">The master page view name (currently unused)</param>
/// <param name="layoutPath">The layout path location (Replaces the masterpage in other view engines)</param>
/// <param name="useCache">Cache the viewpage?</param>
/// <remarks>The layout path is currently hardcoded to "Layout" and will look in the SearchLocations for that path</remarks>
/// <returns>Returns a ViewEngineResult with the requested view</returns>
public ViewEngineResult CreateView(ControllerContext controllerContext, string viewName, string masterName, string layoutPath, bool useCache) {
//grab the current controller from the route data
string controllerName = controllerContext.RouteData.GetRequiredString("controller");
//for proper error handling we need to return a list of locations we attempted to search for the view
string[] SearchedLocations;
//get the actual path of the view - returns null if none is found
string viewPath = GetViewPath(viewName, controllerName, out SearchedLocations);
if (viewPath != null) {
RazorView view = new RazorView(this, controllerContext, viewPath, layoutPath);
return new ViewEngineResult(view, this);
}
//we couldn't find the view - return an array of all locations we've looked in
return new ViewEngineResult(SearchedLocations);
}
/// <summary>
/// Look for the view in the current file system
/// </summary>
/// <param name="viewName">The name of the View you're looking for</param>
/// <param name="controllerName">Current controller name</param>
/// <param name="SearchedLocations">out a list of locations searched</param>
/// <returns>A string value of the relative path</returns>
public string GetViewPath(string viewName, string controllerName, out string[] SearchedLocations) {
return FindPath(viewName, controllerName, out SearchedLocations);
}
/// <summary>
/// Look for the view in the current file system
/// </summary>
/// <param name="viewName">The name of the View you're looking for</param>
/// <param name="controllerName">Current controller name</param>
/// <param name="SearchedLocations">out a list of locations searched</param>
/// <returns>A string value of the relative path</returns>
public string FindPath(string viewName, string controllerName, out string[] SearchedLocations) {
SearchedLocations = new string[SearchLocations.Length];
for (int i = 0; i < SearchLocations.Length; i++) {
string virtualPath = string.Format(SearchLocations[i], viewName, controllerName);
SearchedLocations[i] = virtualPath;
//check the active VirtualPathProvider if the file exists
if (VirtualPathProvider.FileExists(virtualPath)) {
//add it to cache - not currently implemented
return VirtualPathProvider.GetFile(virtualPath).VirtualPath;
}
}
return null;
}
/// <summary>
/// Get the layout virtual path
/// </summary>
/// <param name="controllerContext">The current Controller context for this request</param>
/// <returns>A string virtual path</returns>
public string GetLayoutPath(ControllerContext controllerContext) {
//This should probably be added to a list of locations - I'm not sure exactly
//what I need to do with this yet.
string[] locations;
return FindPath("Layout", controllerContext.RouteData.GetRequiredString("controller"), out locations);
}
/// <summary>
/// Current irrelevant
/// </summary>
/// <param name="controllerContext">The active controller context</param>
/// <param name="view">View to release</param>
public void ReleaseView(ControllerContext controllerContext, IView view) {
IDisposable disposable = view as IDisposable;
if (disposable != null) {
disposable.Dispose();
}
}
#endregion
}
/// <summary>
/// Implements IView and renders a Razor
/// </summary>
public class RazorView : IView {
ControllerContext ControllerContext;
string ViewPath;
string LayoutPath;
RazorViewEngine Engine;
public RazorView(RazorViewEngine engine, ControllerContext controllerContext, string viewPath, string layoutPath) {
//load the file
this.ControllerContext = controllerContext;
this.ViewPath = viewPath;
this.LayoutPath = layoutPath;
this.Engine = engine;
}
#region IView Members
/// <summary>
/// Converts Razor to html and writes it to the passed in writer
/// </summary>
/// <param name="viewContext"></param>
/// <param name="writer"></param>
public void Render(ViewContext viewContext, System.IO.TextWriter writer) {
//View contents
string contents = new StreamReader(VirtualPathProvider.OpenFile(ViewPath)).ReadToEnd();
string layoutContents = LayoutPath == null
? null
: new StreamReader(VirtualPathProvider.OpenFile(LayoutPath)).ReadToEnd();
contents = Parse(contents);
string output;
output = contents;
writer.Write(output);
}
/// <summary>
/// Converts Razor to html
/// </summary>
/// <param name="Razor">Razor text</param>
/// <returns>Html formatted Razor text</returns>
string Parse(string Razor) {
//Where do I get the model From
return RazorEngine.Razor.Parse(Razor);
}
#endregion
}
}
私はあなたのコード(http://tqcblog.com/2011/01/23/precompiled-razor-for-shared-views-and-mono/)に部分的に基づいて非常に異なるビューエンジンを設定しました。実行時の依存関係を減らすためにプリコンパイルを使用すると、モデル、レイアウトなどをサポートするのがかなり簡単になります。私はmvc2/.net3.5の組み合わせを試していませんが、参照の変更だけで動作するはずです。 –
MVC Razorエンジンを入手し、それを使用する方法を学ぶ最も良い方法はScot Guからです! Razorプロジェクト全体のGuru。彼のブログ記事http://weblogs.asp.net/scottgu/archive/2010/10/22/asp-net-mvc-3-layouts.aspx は非常に簡単で、VSのパッケージマネージャConselからスキャフォールディングプロセスを管理する方法を教えてくれます。
- 1. コンソールアプリケーションでRazor View Engineを使用するには?
- 2. Razor View Engineの子ページのJavascript Intellisense
- 3. Razor View Engineの表示位置を無効にする
- 4. ビューモデルを使用してRazor View Engineをホスティングする
- 5. Razor View EngineはMonoで動作しますか?
- 6. 複雑なベースクラスを持つコンソールアプリケーションのRazor View Engine
- 7. Razor View Engine for ASP.NET MVCのソースコードはどこにありますか?
- 8. MVC3 Razor View PopUps
- 9. ASP.Net MVC - Webform View Engineのパフォーマンス
- 10. View Data in mvc razor
- 11. Nustache View Engine ArrayTypeMismatchException
- 12. MVC Razor ViewのHTML.Textareaの値
- 13. 新しいRazor View Engineでは、HtmlHelpersが文字列またはIHtmlStringを返すべきですか?
- 14. ASP.NETのRazor View Engineは構造体またはカスタムクラスをサポートしていますか?
- 15. .Net MVC 4 View Engine WebForm
- 16. Razor Viewに再帰関数を書き込む方法は?
- 17. Razor Template Engineにヌル入力可能なタイプを印刷する
- 18. MVCのRazor Viewでの検証に関する問題
- 19. Razor View-MVC3のWeb.configからキー値にアクセスするASP.NET
- 20. DropDownListForを変更してアクションを実行ASP.NET MVC3でRazor View Engineのパスパラメータを使用
- 21. MVC3 Razor Partial Viewはコントローラに返信しません
- 22. mvc razor partial viewを作成する方法
- 23. MVCからシングルクォートをエスケープする3 Razor View変数
- 24. Razor Viewでダイナミックモデルでlinqを使用する
- 25. エディタテンプレートを使用してリスト内の値を編集するSpark View Engine
- 26. スタンドアロンアプリケーションでのSpark View Engineの使用
- 27. nopCommerceプラグインからRazor Partial Viewを拡張します
- 28. Html Helper拡張子は.cshtml(Razor View code)vs .cs
- 29. Spark View Engineのカスタム属性を定義する
- 30. Razor View IsAuthenticatedが期待どおりに機能しない
System.Web.Razor *は、フレームワークのv 4.0をターゲットにします。 MVC3のRTMが差し迫っていることを考えれば、この段階でRazorをMVC2アプリにプラグインしようとすると少し無意味に思えます。 –