我想输出两个不同的视图(一个作为将作为电子邮件发送的字符串),另一个显示给用户的页面.
这是否可以在ASP.NET MVC beta中使用?
我尝试过多个例子:
1. ASP.NET MVC Beta中的RenderPartial到String
如果我使用此示例,则会收到"在HTTP标头发送后无法重定向".
如果我使用它,我似乎无法执行redirectToAction,因为它尝试渲染可能不存在的视图.如果我确实返回了视图,那么它完全搞砸了,看起来根本不正确.
有没有人对我遇到的这些问题有任何想法/解决方案,或者对更好的问题有任何建议?
非常感谢!
以下是一个例子.我要做的是创建GetViewForEmail方法:
public ActionResult OrderResult(string ref)
{
//Get the order
Order order = OrderService.GetOrder(ref);
//The email helper would do the meat and veg by getting the view as a string
//Pass the control name (OrderResultEmail) and the model (order)
string emailView = GetViewForEmail("OrderResultEmail", order);
//Email the order out
EmailHelper(order, emailView);
return View("OrderResult", order);
}
Run Code Online (Sandbox Code Playgroud)
Tim Scott接受的答案(由我改变并格式化):
public virtual string RenderViewToString(
ControllerContext controllerContext,
string viewPath, …Run Code Online (Sandbox Code Playgroud) 有没有办法从MVC返回一个HTML字符串呈现部分作为JSON响应的一部分?
public ActionResult ReturnSpecialJsonIfInvalid(AwesomenessModel model)
{
if (ModelState.IsValid)
{
if(Request.IsAjaxRequest()
return PartialView("NotEvil", model);
return View(model)
}
if(Request.IsAjaxRequest())
{
return Json(new { error=true, message = PartialView("Evil",model)});
}
return View(model);
}
Run Code Online (Sandbox Code Playgroud) 我当时希望使用Twitter Bootstrap Modal窗口作为局部视图.但是,我并不认为它的设计是以这种方式使用的; 它似乎意味着以相当静态的方式使用.尽管如此,我认为能够将其用作局部视图会很酷.
例如,假设我有一个游戏列表.点击给定游戏的链接后,我想从服务器请求数据,然后在"当前页面顶部"的模态窗口中显示有关该游戏的信息.
我做了一些研究,发现这个帖子类似但不完全一样.
有没有人尝试过成功或失败?任何人都有jsFiddle或他们愿意分享的某些来源?
谢谢你的帮助.