我有这些复选框,我使用JQuery的价值
<div>
<p> Type:
<label>
<input type = "checkbox" name = "types[]" class="filterType" value="Single"/>Single
</label>
<label>
<input type = "checkbox" name="types[]" class="filterType" value="Double"/>Double
</label>
<label>
<input type = "checkbox" name="types[]" class="filterType" value="Suite" />Suite
</label> </p>
<input type="submit" value="filter" onclick="exefunction()" />
</div>
<script>
function exefunction() {
var checkedVals = $('.filterType:checkbox:checked').map(function () {
return this.value;
}).get();
var typesAtt=checkedVals.join('-');
}
</script>
如何将typesAtt
变量传递给我可以在数据库中应用过滤器的RoomController
。这是Index.cshtml视图
答案 0 :(得分:0)
与一切相同。您只需发出http请求,并传递您想要的任何内容(作为POST请求的查询参数或正文的一部分)。
如果使用jquery发出ajax请求,则必须在前端应用程序中编写处理程序。
答案 1 :(得分:0)
您需要将输入元素保留在表单标记内,并使用正确的输入元素名称。
@using(Html.BeginForm("Filter","Home"))
{
<div>
<p>
Type:
<label>
<input type="checkbox" name="types" value="Single" />Single
</label>
<label>
<input type="checkbox" name="types" value="Double" />Double
</label>
<label>
<input type="checkbox" name="types" value="Suite" />Suite
</label>
</p>
<input type="submit" value="filter" />
</div>
}
现在,在您的Filter操作方法中,您可以使用名为types
的参数,该参数是字符串数组类型。
[HttpPost]
public ActionResult Filter(string[] types)
{
// to do : Return something
}
当用户提交表单时,将使用所选复选框的值填充types参数。例如,如果用户选择&#34;单&#34;和&#34; Suite&#34;,types参数将是一个包含2个项目的字符串数组,&#34; Single&#34;和&#34;套房&#34;
要记住的重要一点是,您的输入元素名称应与操作方法参数名称匹配。
答案 2 :(得分:0)
在客户端:
$.post("YourUrl",typesAtt,function(){
})
在服务器端:
[HttpPost]
public ActionResult YourActionName(string data)
{
}