好的就是这笔交易:我使用BeginRouteForm提交搜索。无论如何,当按钮未设置为提交并且我单击按钮时,它会正常运行搜索并且它的行为应该如此,这意味着内容正确呈现。当按钮IS设置为提交类型并单击按钮时,返回的内容只是一些文本而HTML根本不会呈现。
重要的是要注意控制器尝试返回使用javascript的部分视图,以使用ajax替换某些内容(这意味着内容类型为'text / javascript')。
控制器方法:
public ActionResult Search()
{
[Do Some Work]
return JsView("Index.js");
}
JsView(“Index.js”)只是将内容类型设置为“text / javascript”并返回与传递的参数一致的局部视图
表格Snippit:
<div style="float:right;">
@using (Html.BeginRouteForm(ControllerActionName, SearchRouteValues, FormMethod.Get, new { id = "worklistSearch" }))
{
<input type="text" placeholder="Search Cases" id="SearchCriteria" name="SearchCriteria" value="" />
<input class="search image-button no-text filter" value="Filter" id="worklist-search-button" />
}
</div>
PS:我似乎需要将按钮设置为提交类型,以便使用回车键提交表单。
我想知道如何使这项工作正常呈现,并允许我点击提交按钮。
答案 0 :(得分:0)
根据您的描述,您似乎想要捕获表单的提交事件,然后向您的控制器发出AJAX调用。如果这是您想要的,那么您需要阻止提交事件传播,以便不发生POST。
使用jquery,执行以下操作:
$("form").submit(function() {
// make AJAX submission to controller
// process JS returned from controller
// stop submit event from propagating
return false;
});