2014-02-06 3 views
0

Я уже разрабатываю веб-приложение с помощью бритвы mvc3, но мой клиент хочет, чтобы я использовал mvc2. Моя проблема заключается в том, что я разрабатываю помощник, который может передавать код html в код C# и добавлять его к моей функции.Перевести MVC3 Razor на MVC2

Вот мой образец помощника.

public class SampleHelper 
{ 
    public string Content { get; set; } 
    public SampleHelper Content(Func<object, HelperResult> template) 
    { 
     string html = template.Invoke(null).ToHtmlString(); 
     this.Content = html; 
     return this; 
    } 
    public MvcHtmlString Render() 
    { 
     string html = @"<div class='content'>" + this.Content + "</div>"; 
     return MvcHtmlString.Create(html); 
    } 
} 

это путь я использовать его в окне просмотра Html

@SampleHelper.Create().Content(@<text> 
    <input id='sample' type='button' value='test button inside div' /> 
</text>).Render() 

Может кто-нибудь помочь мне преобразовать это MVC2. Я пробовал эту ссылку, но не повезло. Translate to razor Syntax from MVC 2.0 code

ответ

1

В этом thread приведен пример того, как такие расширения переноса могут быть реализованы. В вашем случае вы можете захотеть что-то вроде этого, как DisposableHelper реализации:

public static class DisposableExtensions 
{ 
    public static IDisposable SampleHelper(this HtmlHelper htmlHelper) 
    { 
     string startTag = @"<div class='content'>"; 
     string endTag = "</div>"; 
     return new DisposableHelper(
      () => htmlHelper.ViewContext.HttpContext.Response.Write(startTag), 
      () => htmlHelper.ViewContext.HttpContext.Response.Write(endTag) 
     ); 
    } 
} 

Затем вы можете использовать его так же, как BeginForm метод:

@using (Html.SampleHelper()){ 
    <input id='sample' type='button' value='test button inside div' /> 
} 
+0

Спасибо. У меня есть идея здесь. – Maynard

+0

@ Майнард, добро пожаловать. Дайте мне знать, нужна ли дополнительная информация – Andrei