2013-02-20 45 views
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获取字符串值?

+0

不要仍然得到你的问题..你需要什么? request.Form给你什么?你需要文本框的值还是什么? – gaurav 2013-02-20 12:59:26

+1

可能重复? [如何从HTTPPOST中检索表单值](http://stackoverflow.com/q/5088450/211627)(之后,您只需以正常方式连接字符串:'“foo”+“bar”') – JDB 2013-02-20 13:23:31

+0

@gaurav我基本上需要从文本框的值中创建一个字符串,我可以发送到ActionLink中的控制器动作。我收集的文本框应该包裹在一个表单中?我什么时候可以使用request.Form? – Ryan 2013-02-20 17:59:09

回答

1

的一件事,你所能做的就是将它们串联所有按钮单击事件处理程序,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) 
{ 
} 

要查看所有传入的数据。

+0

非常好的一点。让我乱搞一下。 Thx – Ryan 2013-02-20 18:11:33

+0

因此,如果我创建视图模型,我可以将文本框与Razor绑定,然后将该模型传递回控制器操作?我真的不需要这种方法的表单对象吗? – Ryan 2013-02-20 18:29:11

+0

@瑞恩的权利。只需要''元素,其名称对应于view-model的属性名称。 – AgentFire 2013-02-20 19:26:07

相关问题