如何通过调用window.open将值从Jquery传递到MVC控制器?

3
我希望在单击按钮时打开一个新的弹出窗口,并在其中显示pdf。在按钮单击事件中,我调用以下jquery代码。在这里,我获取了"Url"的值。"Url"包含以下内容:
ControllerName/ViewPdf/23bbe2eh3be //已编码的pdf路径。
但是,在控制器的操作中,我无法找到路径,而是得到了null值。现在我的问题是,如何在我的操作中获取路径而不是接收null值?
Jquery:
function ViewPdf( url) {
    var winW = 800;
    var winH = 330;
    var winX = (screen.availWidth - winW) / 2;
    var winY = (screen.availHeight - winH) / 2;
    var features = 'left=' + winX + ',top=' + winY + ',width=' + winW + ',height=' + winH + ',toolbar=0,location=0,status=0,scrollbars= 1,resizable=1';
    PdfWindow = window.open(url, null, features);
}

控制器:

public ActionResult ViewPdf(String id)
        {
           //some Code
        }

你是将路径作为URL请求参数发布吗?同时提供URL字符串。 - Ahsan Shah
我的实际路径如下: /HomeController/ViewPdf/2A7F2B9AC347B50FC6C32C7EE5640A982F3BBA3294E4C3E9E7AE89EA7F4ACD1493912E77EACF15984460D94FEEDE9098D566A93F71CF96A24AE97D29DBD3B533B529F76CDACE4D473811C9321F0DE39314EC954 - Bhupendra Shukla
2个回答

2

2
你应该定义这个路由。
routes.MapRoute("ViewPdf", "HomeController/ViewPdf/{path}", new { controller = "HomeController", action = "ViewPdf", path = UrlParameter.Optional });

你需要采取行动:

public ActionResult ViewPdf(string path) { //some Code }

或者你应该在查询字符串中定义参数名称:
/HomeController/ViewPdf?path={your_path_here}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接