【问题标题】:Cannot call other action无法调用其他操作
【发布时间】:2010-08-17 12:03:44
【问题描述】:

我正在学习 ASP MVC,并正在开发 SportsStore(创建/编辑功能)。创建产品时,创建操作会查看编辑视图,但是当按下 Sudmit 时,它调用操作创建(发布),虽然我将它设置为调用编辑操作:

<% using (Html.BeginForm("Edit", "Admin", FormMethod.Post, new { enctype="multipart/form-data" }))
   {%>
    <%--<%= Html.ValidationSummary() %>--%>
    <%--<%= Html.Hidden("ProductID") %>--%>

    <p>Name: <%= Html.TextBox("Name")%>
        <div><%= Html.ValidationMessage("Name")%></div>
    </p>
    <p>Description: <%= Html.TextArea("Description", null, 4, 20, null)%>
        <div><%= Html.ValidationMessage("Description")%></div>
    </p>
    <p>Price: <%= Html.TextBox("Price")%>
        <div><%= Html.ValidationMessage("Price")%></div>
    </p>
    <p>Category: <%= Html.TextBox("Category")%>
        <div><%= Html.ValidationMessage("Category")%></div>
    </p>
    <p>
        Image: 
        <% if (Model.ImageData == null)
           { %>
            None
        <% }
           else
           { %>
            <img src= "<%= Url.Action("GetImage", "Products", new {Model.ProductID}) %>" />
        <% } %>
        <div>Upload new image: <input type="file" name="file" id="file" /></div>
    </p>
    <input type="submit" value="Save" /> 
    <%= Html.ActionLink("Cancel and return to list", "Index")%>

<% } %>

请帮我解决它

【问题讨论】:

  • 您也可以发布您的控制器代码吗?

标签: asp.net asp.net-mvc-2


【解决方案1】:

您拥有的代码似乎是合理的如果您希望它发回编辑操作。您的问题有点令人困惑,但我假设您想重用视图并在从 Create 渲染时将其回发到 Create 并在渲染时将其回发到 Edit从编辑。最简单的方法是简单地省略 BeginForm 调用中的参数。这将导致表单操作设置为当前控制器和操作,这将为您提供您想要的。另一种方法是为模型开发模板(显示/编辑器),但具有用于创建/编辑的单独视图,仅呈现模板Html.EditorFor( m =&gt; m, "ProductTemplate" )。这将允许您自定义视图——也许创建视图需要您上传图像? -- 但仍然重用大部分代码。

【讨论】:

  • 我会尝试作为您的评论。但我不知道为什么我设置 BeginForm 方法必须调用控制器 Admin 的操作编辑,但它调用了调用它的操作(操作创建)
  • @quasar747 - 您是否检查了生成的 HTML 以了解实际的表单操作是什么?
  • 调试时,我在保存按钮上鼠标过度,我看到 IE 的状态是创建
  • @quasar747 -- 只做一个view source并检查form标签的action属性。
  • 感谢 tvanfosson,我修复了这个错误。文件 Admin.Master 出现错误,但调试器没有注意到。错误是行:
    对不起,我的英语不好:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-11
  • 2021-06-17
  • 2019-05-27
  • 1970-01-01
  • 2018-05-07
相关资源
最近更新 更多