簡體   English   中英

如何通過 html 將字符串發送到控制器中。 ASP.NET MVC

[英]How do I send a string through html into a controller. ASP.NET MVC

我有一種方法可以將數據導出到 Excel 中,稱為 ExportCSV()。

我想要一種具有一些附加功能的方法:ExportCSV(string searchString),其中網頁搜索欄中的字符串被發送到此方法,然后我可以使用它。 所以我的問題是,如何將搜索欄中的字符串發送到此方法中?

相關代碼如下。

html的用於搜索功能,但我無法獲得類似的功能來導出


<input type="text" placeholder="Chem Name" name="cheminventory2String" value="@ViewData["Search"]" id="SearchString" />
<input type="submit" value="Search" class="btn btn-default" />

<a class="btn btn-default" asp-action="ExportCSV">Export Table</a>


這是控制器


public FileContentResult ExportCSV(string searchString)
{
     var dataTable = from m in _context.ChemInventory2.Include(c => c.Chemical).Include(c => Location).Include(c => c.Order)
                     select m;

     *code for making and filling the csv to export*

     return File(export.ExportToBytes(), "text/csv", "Chemical Inventory.csv");
}

ExportCSV() 有效,但它導出表中的所有內容。 我希望它只導出搜索過的內容。 在我嘗試過的事情中,沒有任何東西都傳遞到方法中。 searchString 始終為空。

<form method="GET" asp-action="ExportCSV">    
    <input type="text" placeholder="Chem Name" name="cheminventory2String" value="@ViewData["Search"]" id="SearchString" />
    <input type="submit" value="Search" class="btn btn-default" />

    <button type="submit" class="btn btn-default">Export Table</a>
</form>

上面 HTML 標記上的 name 屬性需要匹配您的 MVC ActionResult 所采用的參數,並且由於您使用的是 Anchor 標記,因此您只是將人們導航到您的 URL,沒有任何參數。

它應該被包裹在一個表單標簽中,然后錨鏈接應該被一個提交按鈕替換。

然后,您可以使用如下所示的搜索字符串:

public FileContentResult ExportCSV(string cheminventory2String)
    {
         var dataTable = from m in _context.ChemInventory2.Include(c => c.Chemical).Include(c => Location).Include(c => c.Order)
                         where cheminventory2String == m.Chemical.Name select m;

         return File(export.ExportToBytes(), "text/csv", "Chemical Inventory.csv");
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM