我正试图让按钮打印局部视图。
|主视图|部分视图|
|用户|个人资料|
在用户之上,我有链接,用户可以点击访问他的个人资料或他的报告等...
我创建了一个链接,用Media Print CSS打印他们的个人资料,使其在纸上看起来很完美。
我遇到的问题是让它发挥作用。
function print_url () {
location: url;
print();
}
<li data-username="@Model.UserName"><a href="javascript:print_url('URL/Home/ContentView?username=@Model.UserName')">Print Profile</a></li>
这必须适用于所有浏览器。 Chrome只是说没有可用的视图,firefox没有响应,IE也没有:(。
如果您有任何想法会很棒。
AJAX
getUserData: function (elem) {
$elem = $(elem).closest("[data-username]");
var username = $elem.data("username");
var profile = $elem.data("profile");
var directReport = $elem.data("direct-report");
$.ajax({
url: 'Home/ContentView?username=' + username,
type: 'GET',
data: username,
data: profile,
data: directReport,
beforeSend: function () {
$('#loader').css('display', 'block');
},
success: function (result) {
$("#content").html(result).scrollTop(result);
//$("#tabs").fadeIn('1500');
//console.log(result + '\n\n DONE');
},
error: function (e, msg) {
//console.log(e, msg);
}
})
答案 0 :(得分:0)
弃儿,
好的,你输入一个location: url
,然后(一旦我想象它已经去了网址),你调用print()。但是,该语句永远不会被命中,因为更改位置类似于return语句,即所有执行都在该点终止。
是否存在可能适合您的替代方案,即执行jquery ajax调用,或者jquery不适用(我看不到标记)。我们在这里快速移动! :-)
另外,另外,您的网址定义非常脆弱,您应该至少考虑使用@Url.Action()
,即:
<a href="javascript:print_url('@Url.Action("action", "controller, new {username=@Model.UserName}, null)'">
...相反,无论您的托管配置是什么,这都将保证保真度。但是,我的建议是使用ajax来呼叫你的partialview
;根据您提供的信息,没有其他方法可以帮助您。