【发布时间】:2015-05-19 12:06:45
【问题描述】:
我有一个部分视图名称 test/index
以下是代码-
@model MyFirstMVC.Models.testModels
@using (Html.BeginForm())
{
@Html.TextBox("test1")
<input type="submit" value="click" />
@ViewBag.a
}
这个局部视图的控制器在后面-
[HttpPost]
public ActionResult Index(MyFirstMVC.Models.testModels m)
{
ViewBag.a = Request["test1"].ToString() + " from controler";
return View(m);
}
在我的父视图中,我嵌入了如下所示的部分视图 -
@Html.Partial("../test/index",new MyFirstMVC.Models.testModels())
当我运行应用程序时,部分视图确实出现在父视图中。但是当我在局部视图中输入值并提交时,什么都没有发生(该值没有转发到局部视图的控制器 - 我已经检查了与局部视图相关的控制器操作方法是否没有通过设置断点来调用) .
任何帮助将不胜感激。为什么我的局部视图没有向其控制器发送值?
【问题讨论】:
-
您在哪个页面嵌入了局部视图?
-
请出示您的主视图代码
-
页面是否在
Controller/Index重新渲染?如果您将Html.BeginForm()留空,MVC 将尝试将其发布到当前 URL。并且这些值不是在Request中传递的,而是在FormCollection中传递的。将 FormCollection 添加到您的Index方法中,您将可以访问所有表单元素。
标签: c# .net asp.net-mvc razor