Javascript 单击按钮时控制器方法的url

Javascript 单击按钮时控制器方法的url,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我有一个用于添加数据的按钮和另一个用于编辑数据的按钮。单击Add按钮,我得到了正确的url,但是edit按钮没有按预期工作 // Add button <a class="btn btn-success" style="margin-bottom:10px;" onclick="PopupForm('@Url.Action("AddorEdit", "Vehicles")')"><i class="fa fa-plus"></i> Add New</a&

我有一个用于添加数据的按钮和另一个用于编辑数据的按钮。单击
Add
按钮,我得到了正确的
url
,但是
edit
按钮没有按预期工作

// Add button
<a class="btn btn-success" style="margin-bottom:10px;" onclick="PopupForm('@Url.Action("AddorEdit", "Vehicles")')"><i class="fa fa-plus"></i> Add New</a>
检查此按钮时,我得到
onclick=“PopupForm(/Vehicles/AddorEdit/28)”
,参数中没有
。单击此编辑按钮时,弹出表单也不会打开

PopupForm
SubmitForm

function PopupForm(url) {
            var formDiv = $('<div/>');
            $.get(url).done(function (response) {
                formDiv.html(response);

                Popup = formDiv.dialog({
                    autoOpen: true,
                    resizable: false,
                    title: 'fill details',
                    height: 500,
                    width: 700,
                    close: function () {
                        Popup.dialog('destroy').remove();
                    }
                });
            });
        }

        function SubmitForm(form) {
            //console.log($(form).serialize());
            $.ajax({

                type: "POST",
                url: "/Vehicles/AddorEdit",  //form.action,
                data: $(form).serialize(),

                success: function (data) {
                    if(data.success)
                    {
                        Popup.dialog('close');
                        //dataTable.DataTable(ajax.reload());
                        $("#tbl_vehicle").DataTable().ajax.reload();
                    }
                }
            });
函数弹出表单(url){
var formDiv=$('');
$.get(url).done(函数(响应){
html(回应);
Popup=formDiv.dialog({
自动打开:对,
可调整大小:false,
标题:“填写详细信息”,
身高:500,
宽度:700,
关闭:函数(){
对话框('destroy').remove();
}
});
});
}
函数提交表单(表单){
//log($(form.serialize());
$.ajax({
类型:“POST”,
url:“/Vehicles/AddorEdit”//form.action,
数据:$(表单).serialize(),
成功:功能(数据){
if(data.success)
{
弹出对话框(“关闭”);
//dataTable.dataTable(ajax.reload());
$(“#tbl_vehicle”).DataTable().ajax.reload();
}
}
});

你应该选择正确的方法

return "<a class='btn btn-warning btn-sm' onclick='PopupForm('"+myUrl+"')'><i class='fa fa-edit'></i> Edit </a><a class='btn btn-danger btn-sm' style='margin-left:5px;'><i class='fa fa-trash'></i> Delete </a>"
返回“编辑删除”
请查看下面的示例:
var myUrl=“/Vehicles/AddorEdit”+28;
var result=“编辑删除”;

console.log(result);
由于
@Url.Action()的
方法在服务器端进行处理。您可以使用此方法生成的服务器端url(输出上的字符串)连接客户端变量。请尝试以下操作:

var myUrl = '@Url.Action("AddorEdit","Vehicles")?data=' + data;
由于您使用的是
数据表
,因此可以执行以下操作:

{
    "data": "Id",
    "render": function (data) {

        var link ='@Url.Action("AddorEdit", "Vehicles", new { id = "data" })';
        link = link.replace("data", data);
        var result = "<a class='btn btn-warning btn-sm' onclick=\"PopupForm('"+link+"')\"><i class='fa fa-edit'></i> Edit </a><a class='btn btn-danger btn-sm' style='margin-left:5px;'><i class='fa fa-trash'></i> Delete </a>"                                   
        return result;

    },
    "width": "150px"
}
{
“数据”:“Id”,
“渲染”:函数(数据){
var link='@Url.Action(“AddorEdit”,“Vehicles”,new{id=“data”})”;
链接=链接。替换(“数据”,数据);
var result=“编辑删除”
返回结果;
},
“宽度”:“150px”
}

这是否回答了您的问题?如果您需要任何帮助,请告诉我@Nischalini我尝试了您的代码,但它不起作用。以下是我通过将您的代码放入
编辑
来检查元素
得到的结果。您看到我的示例了吗?它已经给了我们预期的
。您应该检查您的“myurl”值,然后点击
就像之前的建议一样。是的
console.log(result)
显示所需的正确结果,但当我返回相同的值
result
并在编辑按钮上检查元素时,它显示的是
onclick=“PopupForm”(“vehicles=”“addoredit=”“25”)=“”
在mozilla firefox和chrome中都有。为什么会这样?我想这就是为什么我的弹出表单在编辑按钮点击时没有打开。我在
PopupForm
参数中遇到了问题。无论我在var myUrl中保留什么,它在onclick事件中的格式都不正确。请在其他回复中查看我的评论。谢谢!!!@nischalin为什么不只是return字符串如下:
保留代码时返回“Edit Delete”
,即使未填充
数据表
。@nischalin删除额外的
?data='+data”
@nischalin还可以向我们显示有关如何呈现按钮的完整代码吗?
{
    "data": "Id",
    "render": function (data) {

        var link ='@Url.Action("AddorEdit", "Vehicles", new { id = "data" })';
        link = link.replace("data", data);
        var result = "<a class='btn btn-warning btn-sm' onclick=\"PopupForm('"+link+"')\"><i class='fa fa-edit'></i> Edit </a><a class='btn btn-danger btn-sm' style='margin-left:5px;'><i class='fa fa-trash'></i> Delete </a>"                                   
        return result;

    },
    "width": "150px"
}