在控制器中使用Action的GET和POST - VB.NET 2012 MVC 4

时间:2012-11-18 16:30:25

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

编辑:

函数“TheColorNameFunction”正在成功运行。问题是,如何让return View()函数返回“TheRequest” View

解决:

只需将View名称写入return View(),如下所示:return View("TheRequest")


控制器:

Function TheRequest() As ActionResult

        Return View()
    End Function


    <HttpPost()>
    Function TheColorNameFunction() As ActionResult

        Response.Write("The color you have submitted: " & Request.Form("ColorName"))

        Return View()
    End Function

HTML:

@Html.BeginForm("TheColorNameFunction", "Home", method:= FormMethod.Post)

<fieldset>
    <input type="text" name="ColorName" />
    <input type="submit" name="ColorName_SubmitButton" />
</fieldset>

HTML Second:

            <ul id="menu">
                <li>@Html.ActionLink("Home", "Index", "Home")</li>
                <li>@Html.ActionLink("About", "About", "Home")</li>
                <li>@Html.ActionLink("The Request View", "TheRequest", "Home")</li>

            </ul>

2 个答案:

答案 0 :(得分:2)

如果我正确理解您的问题,可以使用ViewData或视图模型来完成。在您的情况下,ViewData更易于使用。

使用ViewData:

你的行动方法:

<HttpPost()>
Function TheColorNameFunction(ColorName as String) As ActionResult
    ViewData("message") = "The color you have submitted: " & ColorName
    Return View()
End Function

在您的视图中,您可以显示如下消息:

@ViewData("message")

更新:好吧,如果我理解正确你只想回到标题为“TheRequest”的原始视图,对吗?有两种方法可以做到这一点...而不是return View()你可以return TheRequest(),或者如果.vbhtml文件的名称是'TheRequest',你可以使用return View("TheRequest")

答案 1 :(得分:0)

我不知道您是否在询问如何生成您的操作网址,详情请参阅:Url.Action parameters?

或者如果您只是想提交它,那么您只需要:

<input type=submit value="submit" />

您已经将表单发布到您的操作中,因此提交按钮已经足够了。

我是否正确理解了您的问题?

更新:对于要传递的值,只需在您的操作中传递一个参数,如下所示:

    <HttpPost()>
    Function TheColorNameFunction(colorName as String) As ActionResult

MVC的机制足够聪明,可以从表单中的任何字段或值构建复杂对象

你的行动应该是这样写的:

 @Url.Action("TheColorNameFunction", "Home", "green")