【发布时间】:2014-08-27 15:45:30
【问题描述】:
我是 MVC 新手,需要帮助。 我有一个主视图(index.vbhtml),并且该页面已成功呈现。我有一个局部视图(test.vbhtml),这个局部视图是在发生事件时使用 jquery get 方法动态添加到 index.vbhtml 中的。
$.get('@Url.Action("test", "abc")', function (data) {
$('#partialViewRender').html(data);
});
我能够成功渲染这个局部视图。我以这种方式添加局部视图,因为我有多个局部视图,它们将以类似的方式呈现,例如在发生事件时。所有这些局部视图都将在同一个标签 partialViewRender 中呈现,一次只呈现一个。
在这些局部视图中,我需要形成帖子。就像在测试部分视图上单击提交按钮一样,表单发布发生并调用发布控制器操作。在action方法内部,根据下拉选择的值获取相关数据并需要显示给用户。这就是我卡住的地方。我不希望我的主视图被重定向,我想要与更新数据呈现的部分视图相同的主视图。换句话说,我希望在事件代码背后实现与经典 ASP 应用程序中类似的行为。
为此,我尝试了 html 提交按钮和 Ajax.ActionLink。但它们都重定向到部分视图 url。即 localhost/test 内部操作方法我尝试使用 PartialView、View、RedirectToAction、Json 返回但没有成功。他们都重定向到一个新的网址。
这是控制器的代码
<HttpGet>
Function test() As ActionResult 'this is called on jquery get method
'do some intializing data stuff
Return PartialView("test")
End Function
<HttpPost>
Function test(id As String) As ActionResult
'fetch data on basis of id, this data needs to be shown in a grid
End Function
任何帮助都是一件好事。我完全被困在这里。
【问题讨论】:
-
当测试部分视图中的表单被 POST 时,您是否试图避免重新加载整个页面?或者您是否对重新加载整个页面感到满意,只要结果页面是主视图,其中包含正确的部分视图?
-
我正在避免重新加载整页
标签: jquery asp.net-mvc asp.net-mvc-4