连接来自多个输入文本框的字符串
问题描述:
我有一个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获取字符串值?
答
的一件事,你所能做的就是将它们串联所有按钮单击事件处理程序,somethingk如..
$('#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)
{
}
要查看所有传入的数据。
不要仍然得到你的问题..你需要什么? request.Form给你什么?你需要文本框的值还是什么? – gaurav 2013-02-20 12:59:26
可能重复? [如何从HTTPPOST中检索表单值](http://stackoverflow.com/q/5088450/211627)(之后,您只需以正常方式连接字符串:'“foo”+“bar”') – JDB 2013-02-20 13:23:31
@gaurav我基本上需要从文本框的值中创建一个字符串,我可以发送到ActionLink中的控制器动作。我收集的文本框应该包裹在一个表单中?我什么时候可以使用request.Form? – Ryan 2013-02-20 17:59:09