0

我正在构建一个 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,但它给了我空白页。

4

1 回答 1

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');
});
于 2013-04-08T13:24:05.883 回答