相关疑难解决方法(0)

如何将ASP.NET MVC视图呈现为字符串?

我想输出两个不同的视图(一个作为将作为电子邮件发送的字符串),另一个显示给用户的页面.

这是否可以在ASP.NET MVC beta中使用?

我尝试过多个例子:

1. ASP.NET MVC Beta中的RenderPartial到String

如果我使用此示例,则会收到"在HTTP标头发送后无法重定向".

2. MVC框架:捕获视图的输出

如果我使用它,我似乎无法执行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)

asp.net-mvc rendering

473
推荐指数
9
解决办法
29万
查看次数

将PartialView转换为HTML

我只是想知道是否有可能转换

PartialView("_Product", model)
Run Code Online (Sandbox Code Playgroud)

HTML,所以我们可以用JSON发送回去?

return Json(result, JsonRequestBehavior.AllowGet);
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc json partial-views

15
推荐指数
2
解决办法
2万
查看次数

MVC 4 - VIews /部分视图和表单 - 如何仅更新提交的部分视图?

我有一个包含表单和部分视图的MVC 4视图.主视图包含有关产品的信息,而部分视图包含产品的图像.

我想要做的是让部分视图包含它自己的形式,图像将显示在其上.如果我将此表单提交给控制器操作方法,修改它所基于的模型,然后让操作方法刷新局部视图,我的主视图的局部视图部分是否会更改而不是主视图本身?如果没有,是否有更好的方法来做我想做的事情.我只想更新主视图的局部视图部分.

asp.net-mvc asp.net-mvc-4

2
推荐指数
1
解决办法
1万
查看次数

MVC将PartialViewResult渲染为字符串

免责声明:我编辑了这个问题,因为我改变了这个过程,但它没有改变任何问题......

我试图得到一个PartialViewResult字符串渲染,我试图使用RenderRazorViewToString这个问题的方法渲染视图作为字符串 ...,我从这个qustion mvc返回局部视图的提示作为json

我的问题是,字符串看起来像这样:

<$A$><h1>SomeHeader</h1> 
<table</$A$><$B$> class="table table-striped"</$B$><$C$>> <tbody</$C$><$D$> data-bind="template: { name: 'eventTemplate', foreach: events }"</$D$><$E$>></tbody>
</table></$E$>
Run Code Online (Sandbox Code Playgroud)

而不是这个

<h1>SomeHeader</h1>
<table class="table table-striped">
    <tbody data-bind="template: { name: 'eventTemplate', foreach: events }"></tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

更新:
流程如下所示:

public ActionResult Index(string item, long id)
{
    var cont = SomePartialView(item, id);
    return View(model: RenderRazorViewToString(cont));
}
Run Code Online (Sandbox Code Playgroud)

现在View只是渲染字符串,如下所示:

@Model
Run Code Online (Sandbox Code Playgroud)

RenderRazorViewToString(PartialViewResult)返回这个"跛脚"串...

c# asp.net-mvc asp.net-mvc-partialview asp.net-mvc-4

2
推荐指数
1
解决办法
1万
查看次数

MVC 4 HTML部分呈现为编码的HTML字符串

我将如何获得:

<code class="language-markup">@Html.Partial("components")</code>
Run Code Online (Sandbox Code Playgroud)

要输出HTML标记的编码版本?我尝试了httpUtility,但抛出了一些错误。

c# razor asp.net-mvc-4

1
推荐指数
1
解决办法
898
查看次数

返回部分视图和消息

我有一个部分视图,可以更改连接字符串.提交Edit动作时会被调用.从这里我想要返回并重新打开局部视图,如果我希望用户有第二次去.如果一切顺利(或崩溃),我想调用我的JavaScript函数Logout,将用户注销并重定向到某个起始页.

两种解决方案都有效,但不是一起 我显然错过了一些最佳实践,我该怎么办?

部分视图:EditSetting

@model WebConsole.ViewModels.Setting.SettingViewModel

@using (Ajax.BeginForm("Edit", "Setting", new AjaxOptions { UpdateTargetId = "div" }, new { id = "editform" }))
{
    <fieldset>
        @Html.AntiForgeryToken()

        <div class="form-horizontal">
            @Html.ValidationSummary(true, "", new {@class = "text-danger"})

            <div class="form-group">
                @Html.LabelFor(model => model.User, htmlAttributes: new {@class = "control-label col-md-2"})
                <div class="col-md-10">
                    @Html.EditorFor(model => model.User, new {htmlAttributes = new {@class = "form-control"}})
                    @Html.ValidationMessageFor(model => model.User, "", new {@class = "text-danger"})
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.Password, htmlAttributes: new {@class = "control-label …
Run Code Online (Sandbox Code Playgroud)

javascript asp.net-mvc asp.net-mvc-partialview asp.net-mvc-5

1
推荐指数
1
解决办法
6292
查看次数