操作并留在页面上

时间:2013-04-08 13:13:14

标签: asp.net-mvc-3

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

1 个答案:

答案 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');
});