MVC从字符串渲染PartialView

时间:2017-07-13 09:04:51

标签: html asp.net-mvc razor

我正在尝试渲染局部视图,但复杂的是我需要 将其写为字符串,如下所示:

string str = "Hello {Form} Goodbye !!!";
@Html.Raw(str.Replace("{Form}", "@Html.Partial("_PartialView", Model)"))

现在,我需要编译器了解@html.Partial是MVC HtmlHelper命令而不是字符串。

任何想法?

谢谢, 参见Yaniv

2 个答案:

答案 0 :(得分:0)

您问题的最可能的解决方案是您需要进行ajax调用并获取partialview结果,而不是将您的字符串中的结果替换为。

#include <map>
#include <queue>
#include <iostream>
using namespace std;
int main()
{
    int a,b;
    map<int, int> AB;
    map<int, int>::iterator it;
    queue<int> C;
    while (1)
    {
        cin >> a;
        if (a == -1)break;
        cin >> b;
        AB.insert(pair<int, int>(a, b));
    }
    while (1)
    {
        cin >> a;
        if (a == -1)break;
        C.push(a);
    }
    while(!C.empty())
    {       
        it = AB.find(C.front());
        if (it == AB.end())
            cout << 0;
        else
            cout << it->second;
        cout << " ";
        C.pop();
    }
    cout << -1;
    return 0;
}

在您的控制器类

<script>
    string str = "Hello Form Goodbye !!!";
    replacement();
    function replacement(){
    $.ajax({
                url: '@Url.Action("GetPartialView", "Utility")',
                type: 'GET',
                data:{
                  param1 : "value1",
                  param2 : "value2",
                  param3 : "value3",
                },
                success: function (response) {
                    if (response != null) {
                        str = str.replace('Form',response);
                    }
                },
                error: function (response) {
                }
            });
    }

</script>

答案 1 :(得分:0)

使用可以使用

@Html.Raw(string.Format("Hello {0} Goodbye !!!",Html.Partial("_PartialView", Model)))

@Html.Raw(string.Format(str.Replace("{Form}", "{0}"),Html.Partial("_PartialView", Model)))