在VB中,我正在开发一个MVC项目。我有一个文本框来输入一些搜索条件,旁边有一个按钮,按下后会提交文本框的值。 Html代码段:
<input type="text" id="mySearchField" />
<button onclick="location.href='@Url.Action("Search", "Movies", New RouteValueDictionary(New With {.searchCriteria = document.getElementById('mySearchField') }))'">Search</button>
我的问题围绕着最后一部分:
New RouteValueDictionary(New With {.searchCriteria = document.getElementById('mySearchField') }))'"
上面的代码不起作用或编译,但这是我对我正在尝试做的一般概念。
我想将文本框的值传递给电影/搜索功能,但是我不知道如何格式化线条以同时混合html,asp和javascript。
为了清晰起见,我的VB功能:
Function Search(searchCriteria As String) As ActionResult
Return View()
End Function
非常感谢任何建议!
答案 0 :(得分:1)
这应该非常接近。这有jQuery作为先决条件。为了使这个可维护(你可以这样做或不这样做),我使用NewtonSoft.Json正确地将URL序列化为Javascript,并对文本框值进行url编码。
<input type="text" id="mySearchField" />
<button id=myButton>Search</button>
<script>
var url = '@Html.Raw(Url.Action("Search", "Movies"))';
$("#myButton").click(function(){
location.href = url + '?searchCriteria=' + $("#mySearchField").val()
});
</script>