0

我有一个 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 的字符串参数。我基本上需要构建一个字符串过滤器并将其传递给控制器​​。我正在使用动态 Linq 查询库。

如何从 DOM 中获取字符串值?

4

1 回答 1

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)
{
}

查看所有传入的数据。

于 2013-02-20T18:06:18.340 回答