不能打电话给其他人

时间:2010-08-17 12:03:45

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

我正在学习ASP MVC,并开发SportsStore(创建/编辑功能)。当创建产品时,Create action将查看Edit视图,但是当按下Sudmit时,它会调用action(Post),通过我将其设置为调用Edit action:

<% 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")%>

<% } %>

请帮我修理

1 个答案:

答案 0 :(得分:0)

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