我目前有部分视图呈现在网站上每个页面的顶部。这个局部视图的要点是提供一个允许用户快速搜索的表单。我已将部分视图表格设置如下:
@using (Html.BeginForm())
{
<div class="col-md-7" style="text-align: right">
<div class="input-group input-group-sm col-sm-6 pull-right">
@Html.TextBox("caseReference")
<button type="submit">
<i class="fa fa-search"></i>
</button>
</div>
</div>
}
@Html.Partial("_MainNavigation")
</div>
</div>
</nav>
<script type="text/javascript">
$(function () {
$("form").on("submit", function (event) {
event.preventDefault();
var request = { caseReference: $('#caseReference').val() };
submitForm(request, '@Url.Action("CaseSearch", "QuickSearch", new { area = "Search" })');
});
});
</script>
然而,在页面源下,表单操作呈现为具有后期操作的主页的请求。我已经阅读了很多例子,这个任务看起来非常简单。在@html.BeginForm()方法上使用参数会更好吗?
答案 0 :(得分:0)
因此,经过几个小时的研究,我终于获得了快速搜索功能,可以在我的网站主页上工作。在razorview中,我有以下代码:
<div class="input-group input-group-sm col-sm-6 pull-right">
@Html.Kendo().MaskedTextBox().Name("name").Mask("000000/0000").Deferred()
<button id="search" type="submit">
<i class="fa fa-search"></i>
</button>
<script type="text/javascript">
$(function () {
$("#search").on("click", function (event) {
event.preventDefault();
var value = $('#name').val();
value = value.replace(/[/]/g, "_");
var refVal = value;
var url = '@Url.Action("Action", "Contoller", new { area = "Area" })' + '//' + refVal;
$.ajax({
type: 'GET',
url: url,
cache: false,
dataType: 'json',
contentType: "application/json;",
success: function (result) {
if (result.success) {
window.location.href = result.url;
}
else {
bootbox.alert(result.message);
}
}
});
});
});
但是关于以下一行:
var url = '@Url.Action("Action", "Contoller", new { area = "Area" })' + '//' + refVal;
如果我对网址进行硬编码并附加搜索字词,则它在主页上工作,因为我们位于根目录但是从其他网页失败,为了解决这个问题,我尝试使用@ Url.Action。但是这会在html源代码中产生以下结果:
var url = '' + '//' + refVal;
是否有某种方法可以使用带有JS的URL.Action方法?