あなたは、ビューのMvcHtmlString
を返すためにHtml.Partial
を使用することができます。
Partial
の方法はSystem.Web.Mvc.Html.PartialExtensions
にあります。
この方法について、ここでより多くの情報があります:http://msdn.microsoft.com/en-us/library/ee402898.aspx
私は個人的に私のRenderPartialsのためにこれを使用します(複数の)拡張メソッド:
public static void RenderPartials<T>(this HtmlHelper helper,
string partialViewName, IEnumerable<T> models, string htmlFormat)
{
if (models == null)
return;
foreach (var view in models.Select(model =>
helper.Partial(partialViewName,model, helper.ViewData)))
{
helper.ViewContext.HttpContext.Response
.Output.Write(htmlFormat, view);
}
}
更新
にあなたのビューをレンダリングするために、あなたのコントローラの文字列(これはちょっとしたハックのようですが)をこのようにすることができます:
HtmlHelperは、あなたのコントローラやモデルではなく、あなたのビューで使用するように設計されているため、ちょっとハックだと言われます。それは、それが動作し、解析されたビューを文字列にするための代替手段がない場合、それはあなたの役に立つかもしれないと言われています。
public string Index()
{
var htmlHelper = new HtmlHelper(new ViewContext(), new ViewPage());
return htmlHelper.Partial("PartialViewName");
}
上記のコードはHtmlHelperのを作成しない場合は、正しくあなたの代わりにこのようにそれを作成することができます:
TextWriter writer = new StringWriter();
var htmlHelper = new HtmlHelper(new ViewContext(ControllerContext,
new RazorView(ControllerContext, "","",true,null),
new ViewDataDictionary(),
new TempDataDictionary(), writer), new ViewPage());
をあなたはこのような何かを探していると思いますあなたの質問への改正を考える
Viewで生成されたhtml文字列を単に出力するために、これをコントローラ内でどのように使うことができるかを見せてもらえますか? – Judo
私の更新情報@Judoをご覧ください –