2016-05-06 126 views
0

在使用MVC中的ascx控件之前,讓我先說這不是我想要做的!然而,我上面的力量想要繼續使用ascx控制。控制不在MVC視圖中呈現

我開始用在我的控制器以下幾點:

public ActionResult _CreditReporting(int id) 
{ 
    return PartialView(); 
} 

public static class myClass 
{ 
    public static string GenerateHtmlFromYourControl(this HtmlHelper helper, string contId) 
    { 
     var credControl = new _person_creditreporting_control(); 

     credControl.ID = contId; 

     var htmlWriter = new HtmlTextWriter(new StringWriter()); 

     credControl.RenderControl(htmlWriter); 

     return htmlWriter.InnerWriter.ToString(); 
    } 
} 

在我看來

@using ds_iDMS.Controllers 
    <div> 
    @{ 
    Html.GenerateHtmlFromYourControl("_person_creditreporting_control.ascx"); 
    } 
    </div> 

似乎一切都正常工作,所有的參數都被通過了以下等。 ascx頁面沒有渲染,但我不知道爲什麼

+0

您是否在瀏覽器中查看過原始html,例如Chrome的開發者工具?它是否有效的HTML? –

+0

@NamelessOne在開發人員工具中表示它是有效的。如果我手動導航到視圖,視圖會出現,但根本不會顯示任何內容 – MaximusPrime

+0

當您轉到視圖時,「div」中的內容是什麼? (用'我是什麼意思html明智的) –

回答

0

我會將視圖更改爲

@using ds_iDMS.Controllers 
<div> 
    @Html.Raw(Html.GenerateHtmlFromYourControl("_person_creditreporting_control.ascx")) 
</div> 

Phil Haack has a good quick reference guide to different bits of the razor syntax.它現在可能有點過時了,但它仍然是一個非常有用的概述。

+0

你也可以改變你的'GenerateHtmlFromYourControl'方法在'helper'上調用'Raw',然後在你的視圖中使用'@ Html.GenerateHtmlFromYourControl(「__ person_creditreporting_control.ascx」)''。 –

+0

這樣做!感謝您的幫助! – MaximusPrime