我正在開發一個MVC web應用程序。我需要下載一個文件,我已經存儲爲一個字節[]流在數據庫和它的工作正常。我曾經做過的一個按鈕單擊我調用一個JS函數,並在C#後端調用一個函數,並最終下載文件。以下是我的JQuery代碼。MVC Web應用程序如何在沒有Request.Querystring的情況下獲取參數?
var DownloadDRR = function()
{
var InvoiceId = $(".invoiceid").text();
location.href = location.origin + "/Invoicing/DownloadDRR?InvoiceId=" + InvoiceId;
}
而在後端我通常得到的查詢字符串這樣
Request.Querystring("InvoiceId");
但偶然的,我在我的應用程序發現,如果我寫了下面的它仍然得到InvoiceId
不使用Request.QueryString()
。
public FileResult DownloadDRR(int InvoiceId)
{
InvoicingService Invoices = new InvoicingService(Client);
byte[] RawExcel = Invoices.GetExcelService(InvoiceId);
MemoryStream stream = new MemoryStream(RawExcel);
stream.Seek(0, SeekOrigin.Begin);
return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "test.xlsx");
}
任何人都可以解釋爲什麼請嗎?
這是自動MVC模型綁定。這解釋了很多細節,回答了方式和原因:http://www.codeproject。com/Articles/710776/Introduction to ASP-NET-MVC-Model-Binding-An-Absol ..這正是你應該做的事情。即使是複雜的對象,如「Person person」或「List myList」。正確的MVC不應該需要Request.Querystring()或FormCollection(除非在特別的動態參數或日誌記錄中) –
arserbin3
@ arserbin3您應該將其作爲答案 –