连接多个输入文本框中的字符串

时间:2013-02-20 12:51:51

标签: asp.net asp.net-mvc-3 linq razor

我有一个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中获取字符串值?

1 个答案:

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

查看所有传入数据。