我有一个cshtml页面,我要求用户提供一些输入数据,然后我需要将其连接成一个字符串,以便在我的控制器中构建动态LINQ查询。此视图不使用模型。这是我到目前为止的html代码。
<div id="filter">
Enter a customer name. It can be a part of a name to get broader results. (optional)
<br />
<input type="text", id="customer", value="") />
<br />
Enter a case status ( OPEN or CLOSED ), or leave blank to get both. (optional)
<br />
<input type="text", id="status", value="") />
<br />
Enter a date range to filter by date. (optional)
<br />
Start Date
<input type="text", id="startdate", value="") />
End Date
<input type="text", id="enddate", value="") />
<br />
Enter a PromoID (optional)
<br />
<input type="text", id="promoid", value="") />
<br />
Enter a Complaint Code (optional)
<br />
<input type="text", id="complaintcode", value="") />
</div>
@Html.ActionLink("Export Case Data To Excel for Analysis", "CaseReport", "Reports", "Excel", new { stringFilter = mystring })
控制器操作有一个名为stringFilter的字符串参数。 我基本上需要构建一个字符串过滤器并将其传递给控制器。我正在使用Dynamic Linq查询库。
如何从DOM中获取字符串值?
答案 0 :(得分:1)
您可以做的一件事就是在按钮单击事件处理程序中将它们连接起来,类似于..
$('#form-input-submit-button').click(function() { /* do it here & then submit. */ });
但我建议您在MVC控制器操作方法中使用所需的所有参数
[HttpPost]
public void CaseReport(string promoId, string coplaintCode, ... ) { }
或者更好地拥有强类型模型
public class ReportModel
{
public string PromoId { get; set; }
public string ComplaintCode { get; set; }
...
}
所以你可以:
[HttpPost]
public void CaseReport(ReportModel model) { /* Validate ModelState */ }
实际上,MVC首字母缩略词中的模型是你需要的。
但你也可以做
[HttpPost]
public void CaseReport(FormCollection form)
{
}
查看所有传入数据。