ASP.Net MVC 2 için jilet görünüm motorunu indirmek ve yüklemek istiyorum. Nereden yükleyebilirim ve kurabilirim?Razor View Engine İndirme
cevap
Muhtemelen biraz modası geçmiş ama belki bu yazı bir göz atmalısınız.
http://stefan.rusek.org/Posts/Using-Razor-with-ASP-NET-MVC-in-Four-Easy-Steps/26/
Jilet o kablolama kendinizi sağlamaktır tamamen mümkün olduğunu böylece tek başına çalışan kapasitesine sahiptir. NET4 kullanmanız gerekip gerekmediğini ya da değil% 100 emin değilim. Başka bir notta MVC3, RC durumundadır ve teknik olarak şimdi kullanmaya başlayabileceğiniz ve RTM'nin (yakında) yeni sürüme geçtiğinde yaydığı bir Go-Live lisansına sahiptir.
Matthew Abbott ve Razor View Engine'i Codeplex'ten Kullanma. Aşağıdakileri yapabilirsin. Modelleri veya sayfa sayfalarını desteklemez, ancak bu rotaya gitmeyi seçerseniz, doğru yönde size ulaşır. Açıkçası, zaman hazır olduğunda MVC 3'e güncellemeliyim. Bu kod http://buildstarted.com/2010/11/22/making-your-own-viewengine-with-markdown/
benim blog yayınına dayanıyordu Sen global.asax aşağıdaki satırı ekleyin gerekir: Her iki motor istemedikçe
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new RazorViewEngine.RazorViewEngine());
bu durumda sadece kaldırmak Clear()
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
}
}
Kodunuza göre oldukça farklı bir görünüm motoru oluşturdum (http://tqcblog.com/2011/01/23/precompiled-razor-for-shared-views-and-mono/). Çalışma zamanı bağımlılıklarını azaltmak için ön derleme kullanıyorsanız, destekleyici model, düzenler vb. Mvc2/.net3.5 kombinasyonunu denemedim, ancak bazı referans değişikliklerden çok daha fazlası olmadan çalışmalı. –
MVC Razor motorunu almanın en iyi yolu ve nasıl kullanılacağını öğrenmek Scot Gu! Bütün Razor projesinin Gurusu. http://weblogs.asp.net/scottgu/archive/2010/10/22/asp-net-mvc-3-layouts.aspx isimli blog yazısı, iskele sürecini VS'deki Paket Yöneticisi Konsolu'ndan nasıl yöneteceğinizi takip etmekte ve öğretmektedir.
- 1. Razor View Engine ile iç içe işlemler
- 2. Razor view engine 2.x sürümündeki yenilikler nelerdir?
- 3. MVC3 Razor view engine, kısmi görünüm oluştururken hata oluştu
- 4. HTML.Textarea Değerleri MVC Razor View
- 5. Jilet View Engine bir konsol uygulamasında nasıl kullanılır?
- 6. Bir MVC 3 Razor View değişkeni için tek alıntıdan kaçma
- 7. Razor View Sözdizimi bir HTML özniteliğinde "@" tanıyor değil
- 8. Google App Engine indirme php yerine onu yorumlamanın
- 9. Razor
- 10. Razor
- 11. Bir Progress View
- 12. İndirme yöneticisi - limit indirme hızı
- 13. C# Razor
- 14. Json - Ayrıntılar için segue'ye hazırlan View View
- 15. MVC3 Razor View Project, VB.NET kullanarak tüm htmlml sayfaları için Hata Listesi penceresinde sözdizimi hatası verir
- 16. 'VIEW oluşturma'
- 17. Açısal: view
- 18. MVC3 RC Razor @helper konumları
- 19. Apex - Etkileşimli Rapor - CSV İndirme Sütunu İndirme?
- 20. Kısmi görünümden kısmi görünümün oluşturulması MVC View Engine motorunu kullanarak MVC 3
- 21. birden indirme
- 22. indirme dosyaları
- 23. wget indirme
- 24. Razor, HiddenFor'da gizli PK'yi gizlemeyecek
- 25. ApiControllers and Razor views
- 26. Razor Nested WebGrid
- 27. ASP.NET MVC 3 Razor
- 28. MVC3 Razor Sözdizimi sıkıntıları
- 29. TimePicker Razor ASP.NET MVC
- 30. Kopya Razor-Views NancyFx?
System.Web.Razor * dosyasında bulabilirsiniz. MVC3 RTM'sinin yakında olması göz önüne alındığında, Razor'u bir MVC2 uygulamasına takmaya çalışmanın bu aşamada biraz anlamsız olduğunu düşünüyorum. –