名称'button'在当前上下文 MVC 中不存在



我在这一行的"button"上得到标题错误:

$(this).load("@Url.Action("defectsPartial", new { id = button})");

<script>
    $(function () {
        $("#myModal").dialog({
            autoOpen: false,
            height: 600,
            width: 700,
            modal: true,
            open: function (event, ui) {
                var button = document.getElementById("button").value;
                $(this).load("@Url.Action("myPartial", new { id = button})");
            },
                buttons:{
                    "Close": function () {
                        $(this).dialog("close");
                    }
                }
        });
        $(".launch").click(function () {
            $("#myModal").dialog("open");
        });
    });
</script>

下面是带有按钮的函数:

 @foreach (var item in Model)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.Id)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Title)
                </td>
                <td>
                    <button class="launch" value= "@item.Id" id="button">Go</button>
                </td>
            </tr>
        }

Javascipt变量在razor中将无法访问。

这样做:

var url = '@Url.Action("defectsPartial")';
url = url+"?id="+button;
$(this).load(url);

您使用button作为变量,但它必须是字符串。

$(this).load('@Url.Action("defectsPartial", new { id = "button"})');

我也不确定是否有这样的html元素button。也许你应该用<input type="button" /> ?

问题是,那个Url。Action在编译razor视图时被评估,但是button变量是javascript,它在客户端被评估。

你必须手动添加id:

<script>
    $(function () {
        $("#myModal").dialog({
            autoOpen: false,
            height: 600,
            width: 700,
            modal: true,
            open: function (event, ui) {
                var button = document.getElementById("button").value;
                $(this).load("@Url.Action("myPartial")" + button);
            },
            buttons:{
                "Close": function () {
                    $(this).dialog("close");
                }
            }
        });
        $(".launch").click(function () {
            $("#myModal").dialog("open");
        });
    });
</script>

相关内容

最新更新