3

我想在单击按钮时打开新的弹出窗口,其中包含 pdf。在按钮 click 上,我调用了以下 jquery。在 Jquery 中,我得到了“Url”中的值。“Url”包含以下内容

ControllerName/ViewPdf/23bbe2eh3be //编码形式的 pdf 路径。

但是我无法在控制器中的操作中找到路径,而不是路径我得到了空值。 现在我的问题是,我怎样才能在我的操作中获得路径而不是接收 null?

查询:

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
        }
4

2 回答 2

2

你应该这样做

//this should call your controller method 
window.location = '@Url.Action(ActionName, controllername)' + JSON.stringify(filename);

当您尝试将功能分配给您的窗口时,请查看这些链接

https://developer.mozilla.org/en-US/docs/Web/API/window.open

http://www.w3schools.com/jsref/met_win_open.asp

于 2013-09-19T05:54:27.457 回答
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}
于 2013-09-19T06:24:48.383 回答