我有一个主页面,我的所有观点都是从这个页面继承的。我遇到的问题是使用在母版页中创建的表单标记,然后是在视图中创建的表单标记。
由于表单位于母版页表单内,所有我的回发都被发送到控制器索引方法,它迫使我创建一个强制HttpPost的新方法索引。
此外,这会导致以下路由出现问题:/ projects / add /和/ projects / delete / 1,其中所有内容都是索引方法的路由器。
WTF?我在这里错过了什么吗?
谢谢任何人
答案 0 :(得分:1)
答案 1 :(得分:1)
在我看来,你真的应该将MasterPages视为布局而不是功能页面。事实上,视图根本不会从母版“继承”。在传统的Webforms中,masterpages实际上是用户控件。所以我会尝试不将基类功能放入母版页。所以也许这就是一些混乱的地方。
答案 2 :(得分:0)
ASP.NET MVC不应该做“PostBacks”...这完全忽略了这一点。删除你所拥有的任何“很大程度上包含形式的标签”,并且只在输入字段周围放置一个“表单”标签,用于(为特定目的)POST以进行某种操作。
你拥有一个全方位的表单标签(与传统的asp.net一样)意味着你没有为该表单定义的原因,并且(再次)错过了MVC的观点。
这是一篇较旧的文章,但它可以帮助解决传统和MVC之间的差异:ASP.NET MVC in the Real World
答案 3 :(得分:0)
如果您需要在每个页面上使用常用表单元素,那么您在主页上有表单的原因,然后将表单元素与您的site.master文件一起移动到位于共享文件夹中的用户控件。然后在每个视图页面中通过Html.RenderPartial包含用户控件。这只需要1行代码,每个视图可能需要一个div标签,这不是坏事。
BTW是位于主页面中的表格,是偶然的登录或搜索控件吗?