我正在构建一个ASP.NET MVC3应用程序,我在其中打印一些文件。这是我打印的代码部分:
public ActionResult Barcode(string DocumentID)
{
barkod = new Barcode(DocumentID);
MemoryStream ms = new MemoryStream();
barkod.image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
Print(barkod);
return Redirect("Home/Index");
}
这可能很傻,但我怎么才能打印而不做其他任何事情,没有重定向或其他任何东西?
我尝试EmptyResult
并返回null,但它给了我空白页。
答案 0 :(得分:1)
因为您似乎不想返回视图,所以为什么不通过ajax调用它:
$.post('@Url.Action("Barcode")', { DocumentID : docId }, function(result) {
});
您还可以包含控制器名称(例如SomeController
):
$.post('@Url.Action("Barcode","Some")', { DocumentID : docId }, function(result) {
});
如果打印操作不会花费很长时间,或者您只想返回状态是否需要太长时间:
public ActionResult Barcode(string DocumentID)
{
// do your thing here
return Json(the_status_a_boolean_or_some_other_type);
}
和你的js:
$.post('@Url.Action("Barcode","Some")', { DocumentID : docId }, function(result) {
if (result) {
console.log("it's a success!");
}
else {
console.log("something wrong went bad");
}
}).error(function() {
console.log('post action cannot be completed');
});