我在将数据从表单帖子发送到我的控制器时遇到问题
本文关键字:我的 控制器 问题 遇到 数据 表单 | 更新日期: 2023-09-27 18:34:48
我有一个应用程序,它应该接受来自表单帖子的 4 个参数,这是我在我的 Index.cshtml 类中做的。 我将控制器设置为在查询数据库后返回 csv 文件。 我正在使用表单帖子,但不确定我缺少什么,因为它没有向我的控制器发送任何数据以处理查询和下载文件。
This is my HTML
<div id="engagementForm" class="col-lg-offset-4">
@using (Html.BeginForm ("GetClientList", "Home", FormMethod.Post) )
{
<div class="form-horizontal" role="form">
<div class="form-group" id="marketSelection">
<label class="control-label col-sm-2" name ="marketGroup" id="marketGroup">Engagement Market:</label>
<div class="col-lg-10">
<input id="mrkGroup">
</div>
</div>
<div class="form-group" id="officeSelection">
<label class="control-label col-sm-2" name ="engagementOffice" id="engagementOffice">Engagement Office:</label>
<div class="col-sm-10">
<input id="engOffice">
</div>
</div>
<div class="form-group" id="partnerSelection">
<label class="control-label col-sm-2" Name ="engagementpartner" id="engagementpartner">Engagement Partner:</label>
<div class="col-sm-10">
<input id="engPartner">
</div>
</div>
<div class="form-group" id="statusSelection">
<label class="control-label col-sm-2" Name ="engagementStatus" id="engagementStatus">Engagement Status:</label>
<div class="col-sm-10">
<input id="engStatus">
</div>
</div>
<button class="k-button" type="submit" id="searchButton">Create Speardsheet</button>
</div>
}
This is my Controller
public ActionResult GetClientList(int? marketGroup, int? engagementOffice, int? engagementpartner, int? engagementStatus)
{
List<Engagement> QueryResult = PMService.GetRequestedEngagments(marketGroup, engagementOffice, engagementpartner, engagementStatus);
var writetofile = PMService.BuildCsvString(QueryResult);
var bytefile = Encoding.UTF8.GetBytes(writetofile);
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=SqlExport.csv");
Response.Charset = "";
Response.ContentType = "application/text";
Response.Output.Write(writetofile);
Response.Flush();
Response.End();
return View();
}
您的
所有输入都没有name
属性:
<input id="mrkGroup">
因此,浏览器无法在 POST 值的键/值对中识别它们。 只需添加一些name
:
<input id="mrkGroup" name="marketGroup">
<小时 />旁注:返回FileResult
对象比直接写入 MVC 中的Response
输出要好得多。 您会发现调试和测试要容易得多。 写入输出并返回视图似乎...容易出错。