public string GetRazorViewAsString(string filePath, object model = null)
{
var resultString = new StringWriter();
var context = new HttpContextWrapper(HttpContext.Current);
var routeData = new RouteData();
// Creatign the controller context
var controllerContext = new ControllerContext(new RequestContext(context, routeData), new DummyController());
// Rebdering the view and getting the html to resultString
var razor = new RazorView(controllerContext, filePath, null, false, null);
razor.Render(new ViewContext(controllerContext, razor, new ViewDataDictionary(model), new TempDataDictionary(), resultString), resultString);
// Returning the generated html
return resultString.ToString();
}
public class DummyController : Controller { }
В настоящее время мы используем приведенный выше код для генерации HTML-кода для просмотра. В этом случае путь просмотра - это виртуальный путь.Как получить Html любого представления по его полному расположению файла
Теперь мы планируем перемещать виды за пределами проекта. Поэтому сохранить виртуальный путь невозможно сейчас.
Есть ли способ создания HTML, взяв полный путь к мнению
Если вы посмотрите на пакет MVC в NuGet, вы увидите, что это зависит от пакета Razor. Если вы посмотрите на этот пакет Razor, вы увидите, что от него зависит другой проект, и этот проект способен делать то, что вы хотите. Сделайте небольшое исследование, и я думаю, вы его найдете. – mason
Несомненно @mason. Но в настоящее время не хватает времени. Итак, проверяя, не сталкивался ли кто-либо с подобным делом. Так было бы быстрее. а также нет зависимостей для Microsoft.AspNet.Razor, как я вижу в NuGet. –
Просто потому, что вы слишком быстро работаете, это не значит, что вы не можете провести адекватное исследование. Я думаю, вы найдете то, что ищете, если вы Google «asp.net бритва в html-библиотеку» – mason