[英]how to pass my viewbag content (a huge table) from view to controller, in ASP.NET MVC 5
[英]How can I pass an object from my view to my controller in ASP.NET MVC?
我想在用戶單擊 Excel 按鈕時下載 Excel 文件。 這是我的Model
和Object
:
List<VMStockScreenerModel> listofStockScreener = (List<VMStockScreenerModel>)TempData["StockScreener"];
TempData["StockScreener"] = listofStockScreener;
這是我認為的 Excel 按鈕:
<div class="col-md-1 padding-fx text-left" id="btn_FilterStocks">
<span onclick="DownloadFilterStocks(@listofStockScreener.ToList());" class="pull-right icon-merge" data-toggle="tooltip" title="Download">
<i class="fa fa-file-excel-o"></i>
<i class="fa fa-cloud-download"></i>
</span>
</div>
這是我的OnClick
處理程序:
function DownloadFilterStocks() {
debugger;
var Obj = [@listofStockScreener];
Obj = JSON.stringify({ 'Obj': Obj });
var urls = '@(Html.Raw(Url.Action("Download_StockScreener","Home", new { Obj = "_Obj_"},Request.Url.Scheme)))'.replace("_Obj_", Obj);
}
控制器代碼
public FileResult Download_StockScreener(VMStockScreenerModel Obj)
{
try
{
string fileName = string.Empty;
string filePath = string.Empty;
string fileName_filePath = string.Empty;
fileName_filePath = StockScreener_DownloadExcel(Obj);
if (fileName_filePath.Contains("@"))
{
filePath = fileName_filePath.Split('@')[0];
fileName = fileName_filePath.Split('@')[1];
}
if (fileName != "")
{
//return File(filePath, "text/csv", fileName);
}
else
{
return null;
}
}
catch (Exception ex)
{
Log.Logging("HomeController => Download_StockScreener", ex.Message + "\n" + ex.StackTrace);
} return null;
}
我希望我不是為您編寫整個代碼,而是通過向您建議使解決方案起作用所需采取的步驟來指導您找到答案:
span
,使元素成為錨點a
。<a href="www.mydomain.com/Stocks/ExportToExcel" onclick="DownloadFilterStocks(this)">Export</a>
function DownloadFilterStocks(elem) {
debugger;
var Obj = [@listofStockScreener];
var $elem = $(elem);
//this converts JS object to query string
var qParams = $.param(Obj);
//append query string to the anchor's base url
var newUrl = $elem.attr('href') + '?' + qParams;
//assign new url
$elem.attr('href', newUrl);
}
這將起作用的方式是:
希望能幫到你。 無論如何,我最終編寫了一些代碼。
注意:我的回答假設您的服務器端代碼是工作代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.