2016-05-06 23 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