Мне нужно сделать частичное представление строки, и я пытаюсь преобразовать пример C # в VB.Net, так как я застрял с этим для этого проекта.
Это вызывает у меня головную боль от этих двух проблем:
- ObjectViewData - я не могу понять, что это такое
- RenderPartial является подпрограммой, но, кажется, используется как функция - я не понимаю
Я ссылаюсь на MVCContrib.UI, поэтому мне не нужно конвертировать это. Но эти две функции мне нужно преобразовать:
(из brightmix.com )
/// Static Method to render string - put somewhere of your choosing
public static string RenderPartialToString(string userControl, object viewData, ControllerContext controllerContext)
{
HtmlHelper h = new HtmlHelper(new ViewContext(controllerContext, new WebFormView("omg"), null, null), new ViewPage());
var blockRenderer = new BlockRenderer(controllerContext.HttpContext);
string s = blockRenderer.Capture(
() => RenderPartialExtensions.RenderPartial(h, userControl, viewData)
);
return s;
}
/// Your Controller method...
public ActionResult MakeStringForMe()
{
var objectViewData = new objectViewData { SomeString = "Dude", SomeNumber = 1 };
string s = RenderPartialToString("~/Views/Controls/UserControl.ascx", objectViewData, this.ControllerContext);
View();
}
Вот моя попытка конвертировать его в VB.Net
'Static Method to render string - put somewhere of your choosing'
Public Shared Function RenderPartialToString(ByVal userControl As String, ByVal viewData As Object, ByVal controllerContext As ControllerContext) As String
Dim h As New HtmlHelper(New ViewContext(controllerContext, New WebFormView("omg"), Nothing, Nothing), New ViewPage())
Dim blockRenderer As New MvcContrib.UI.BlockRenderer(controllerContext.HttpContext)
Dim s As String = blockRenderer.Capture(RenderPartialExtensions.RenderPartial(h, UserControl, viewData))
End Function
Public Function MakeStringForMe() As ActionResult
Dim objectViewData As objectViewData = New objectViewData With {.SomeString = "Dude", .SomeNumber = 1}
Dim s As String = RenderPartialToString("~/Views/Controls/UserControl.ascx", objectViewData, Me.ControllerContext)
View()
End Function