我有一个MVC 4应用程序,它有一个单独的主视图。我有三个链接按钮,并希望根据按钮单击动态加载三种不同的表单。我正在使用mvc部分视图。所以,如果我点击按钮-1,它应该加载partialView-1,并且还应该从相应的文本框发送value-1到partialView-1。
我正在寻找内置的mvc方法,而不是做大量的javascript工作。
答案 0 :(得分:3)
您可以像this一样执行此操作。
A. 在控制器内部使用不同的方法返回PartialViewResult
[HttpGet]
public PartialViewResult GetPartialView1(int value)
{
return PartialView("_PartialView1"); //This view should exist in appropriate views folder.
}
B。左侧的按钮应为@Ajax.ActionLink
@Ajax.ActionLink(
"Button1",
"GetPartialView1",
new {
value1 = 1},
new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "righthandsidebox"
}
)
C。 UpdateTargetId = "righthandsidebox"
应该是右侧div的id。 righthandsidebox
的内容将由PartialView
答案 1 :(得分:-1)
MVC没有内置任何功能,因为你想要做的事情发生在前端。如果你想要动态,你必须使用javascript。
如果你想避免使用javascript,那么它就不会是动态的。您可以将每个按钮和值包装在一个表单中,并将其值提交给后端,然后通过您传递的内容,然后让您的视图呈现您想要的部分。但是这并不像想要的那样充满活力。
我不确定你认为是什么"沉重的"谈到javscript?使用jQuery你想要的东西并不需要花费太多。
(更轻松的javascript工作)你可以让你的View在页面上放置所有部分视图,其中一个类将它们设置为display:none
然后只需javascript就可以简单地更改类以查看部分内容喜欢。但是你有很多偏见,那么你可以做到以下几点。
或者让按钮对后端进行“ajax调用”,获取所需的部分内容。
底线是......如果你想要动态,你需要使用javascript。