MVC3:单击提交按钮以提交表单不会呈现部分视图

时间:2011-10-31 17:41:11

标签: javascript asp.net-mvc-3 partial-views

好的就是这笔交易:我使用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:我似乎需要将按钮设置为提交类型,以便使用回车键提交表单。

我想知道如何使这项工作正常呈现,并允许我点击提交按钮。

1 个答案:

答案 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;
});