2

我有两种操作方法。其中一个提交“新产品”的插入数据,另一个表单必须上传该产品的照片。每个人都有自己的模型、视图,每个人都从完全独立的控制器中调用自己的动作。

但我需要在一个视图中同时拥有这两种形式。

我通过使用@html.action() 在“插入新产品”操作的视图中呈现“上传”操作的视图来完成此操作。

问题是,两个提交按钮都调用相同的“插入新产品”操作:|

看一看。这是第一个视图:

@using (Html.BeginForm("Insert_New_Product", "Admin", FormMethod.Post))
{
// Inputs, Validation Messages and all those stuff ...
   <input type="submit" name="Insert_New_Product" value="Add New Product" />

// Here, I render the "Upload" View :
   @Html.Action("Upload", "UploadImage")
 }

“上传”视图如下所示:

@using (Html.BeginForm("Upload", "UploadImage", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
// Inputs and stuff ... 

  <input type="submit" value="Upload" name="Upload"/>
}

那么这怎么可能有两个(或更多)表单,每个表单在提交时都调用它自己的 ActionResult 呢?我会很感激你的帮助。

4

1 回答 1

1

我认为这@Html.Action("Upload", "UploadImage")是问题所在。您实际上是在第一个表单中呈现第二个表单。那是行不通的。尝试将其更改为:

@using (Html.BeginForm("Insert_New_Product", "Admin", FormMethod.Post)) 
{ 
    // Inputs, Validation Messages and all those stuff ... 
    <input type="submit" name="Insert_New_Product" value="Add New Product" />
} 

// Here, I render the "Upload" View : 
@Html.Action("Upload", "UploadImage")

此外,您应该真正使用Html.RenderAction而不是Html.Action直接写入响应流。请参阅此处了解更多信息。像这样:

@{ Html.RenderAction("Upload", "UploadImage"); }
于 2012-08-08T20:12:54.180 回答