MVC HttpPost ActionResult问题

时间:2016-04-15 17:27:35

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

如标题所述,我的问题是关于MVC和ActionResult。

我们想要实现的目标:

它是一个食谱网站,您可以在其中提交食谱并搜索食谱。

在提交表单上,我们希望如果从与IngredientModel链接的dropdownListFor(成分列表)中单击某个项目,则应将所选项目插入到列表框中(选定的成分)。

我们拥有什么:

一个名为Submit的Controller和HttpPost ActionResult方法。

整个表单提交方法分为3种形式(1个HtmlBeginForm& 2 Html.Partial)

第一种形式是添加新成分(添加新成分)txtBox和按钮。(局部视图) 第二个表单是addToListBox(其中dropdownListfor中的所选项应该进入列表框)(部分视图)

第三种形式是其余的(标题,描述,步骤,img等......和食谱提交按钮。(主视图)

代码:

http://pastebin.com/UkQ1RDT5

在RecipeController中有一个httpPost ActionResult Submit(用于将整个配方放入DataBase),但是在我们想要将配方放入DB之前我们想要:

  • 一个httpPost ActionResult AddIngredientToListBox,用于从列表中的dropdownListFor中放入selectedItems,每次从下拉列表中单击一个项目,以显示列表框中包含所选项目的“已更新”列表。

- 一个httpPost ActionResult AddNewIngredient,它将一个新成分添加到DB(或列表框中,然后再添加到DB中)

问题

当所选项目从dropdownList更改时,我们将进入Submit ActionResult而不是AddIngredientToListBox ActionResult ...

我和我的老师(我的学生)整整一个下午都在搜索,但他找不到原因......

感谢您的时间!

亲切的问候。

1 个答案:

答案 0 :(得分:2)

person语句应指定应将表单发布到的控制器+操作的名称。说,@using (Html.BeginForm()) {

还要注意表单的嵌套。请检查您的HTML输出,因为您的剃刀会在另一个@using (Html.BeginForm("AddIngredientToListBox", "NameOfYourController")) {内呈现<form>