Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于动态插入的MVC编辑器_Javascript_Asp.net Mvc 3_Razor_Editorformodel - Fatal编程技术网

Javascript 用于动态插入的MVC编辑器

Javascript 用于动态插入的MVC编辑器,javascript,asp.net-mvc-3,razor,editorformodel,Javascript,Asp.net Mvc 3,Razor,Editorformodel,我想制作一个javascript,可以动态插入一个新的“EditorFor”模型,但我有两个问题 1:我一直用html编码字符串,我不知道如何停止它 2:我如何告诉它使用什么模型,而不是在我的模型中有它的实例 我尝试过以下方法,但不起作用:( 这是我的完整javascript @model Cosplay.Models.Projects.CreatePartsModel @{ ViewBag.Title = "AddParts"; } <script type="text/jav

我想制作一个javascript,可以动态插入一个新的“EditorFor”模型,但我有两个问题

1:我一直用html编码字符串,我不知道如何停止它

2:我如何告诉它使用什么模型,而不是在我的模型中有它的实例

我尝试过以下方法,但不起作用:(

这是我的完整javascript

@model Cosplay.Models.Projects.CreatePartsModel

@{
    ViewBag.Title = "AddParts";
}
<script type="text/javascript">
    @{
        MvcHtmlString emodel = Html.EditorFor(model => Cosplay.Models.Projects.CreatePartModel, "CreatePartModel", "Parts[NAMEREPLACE]");
        string editor = emodel.ToString().Trim().Replace("\"", "\\\"");;
    }
    function getPartHtml(name) {
        var html = '@editor';
        return html.replace("NAMEREPLACE", name);
    }
    $(document).ready(function () {
        var lastCount = 5;
        $("#addPartInput").click(function () {
            lastCount++;
            $('#edit_part_list').append(getPartHtml(lastCount));
        });
    });
</script>

@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)
    <div id="edit_part_list">
        @Html.EditorFor(model => Model.Parts)
    </div>

    <a id="addPartInput">Add another part</a><br />
    <input type="submit" value="Save" />
}
编辑2: 我发现以下代码将删除编辑模型中的所有输入字段:(

试着这样做:

<div id="foo"></div>

<script type="text/javascript">
var html = '@Html.Raw(HttpUtility.JavaScriptStringEncode(Html.EditorFor(x => x.Name).ToHtmlString()))';
$('#foo').html(html);
</script>

var html='@html.Raw(HttpUtility.JavaScriptStringEncode(html.EditorFor(x=>x.Name.ToHtmlString()))';
$('#foo').html(html);
这样,您就不需要任何替换。它还将负责正确编码。

请尝试以下操作:

<div id="foo"></div>

<script type="text/javascript">
var html = '@Html.Raw(HttpUtility.JavaScriptStringEncode(Html.EditorFor(x => x.Name).ToHtmlString()))';
$('#foo').html(html);
</script>

var html='@html.Raw(HttpUtility.JavaScriptStringEncode(html.EditorFor(x=>x.Name.ToHtmlString()))';
$('#foo').html(html);
这样您就不需要任何替换。它还将负责正确的编码

Html.Editor("Parts[X]", "CreatePartModel")
<div id="foo"></div>

<script type="text/javascript">
var html = '@Html.Raw(HttpUtility.JavaScriptStringEncode(Html.EditorFor(x => x.Name).ToHtmlString()))';
$('#foo').html(html);
</script>