Asp.net mvc Asp.Net MVC-RenderPartial-在列表视图中创建
我有一个页面列出了我所有的文章(articles/List.aspx) 我还得到了一个创建文章的控件(article/create.ascx) 我希望我的List.aspx页面能够呈现Create.ascx来创建文章 我知道在MVC中,首选的方法是一页一个动作。但在这种情况下,我需要这样做。这是一个设计问题,也是客户希望网站如何工作的问题 现在,我在List.aspx中获得了以下代码:Asp.net mvc Asp.Net MVC-RenderPartial-在列表视图中创建,asp.net-mvc,renderpartial,Asp.net Mvc,Renderpartial,我有一个页面列出了我所有的文章(articles/List.aspx) 我还得到了一个创建文章的控件(article/create.ascx) 我希望我的List.aspx页面能够呈现Create.ascx来创建文章 我知道在MVC中,首选的方法是一页一个动作。但在这种情况下,我需要这样做。这是一个设计问题,也是客户希望网站如何工作的问题 现在,我在List.aspx中获得了以下代码: <% Html.RenderPartial("Create", new Domain.Models.Ar
<% Html.RenderPartial("Create", new Domain.Models.Article()); %>
这是正确的渲染。但是当我点击create按钮时,它并没有进入ArticleController的create[post]方法
知道我为什么以及如何解决这个问题吗?如果按钮有问题,则与呈现用户控件的方式无关。我们需要查看按钮所在的表单标记,它将显示最可能出现的问题 但仅供参考,您可能希望执行以下操作:
<% using (Html.BeginForm("Create",
ViewContext.RouteData.Values["Controller"].ToString())) { %>
your control markup here
<% } %>
您的控件标记在这里
问题不在于按钮,因为如果我将所有代码放在一个标准的Create.aspx页面(而不是控件)中,它就正常工作了。但是,你的权利,你的代码就是我要找的。我感谢你快速而好的回答@梅勒索斯问题很可能不是按钮,而是按钮的形式。在控件中,您需要知道要使用哪个控制器,哪个可能是您所期望的控制器,哪个可能不是。这就是为什么我包含ViewContext.RouteData.Values[“Controller”]。指的是从页面内部构建用户控件的控制器。这样你就知道你得到的是呼叫的控制器。谢谢你的澄清!这有助于我更好地理解!