控制器中带有操作的 GET 和 POST - VB.NET 2012 MVC 4
Posted
技术标签:
【中文标题】控制器中带有操作的 GET 和 POST - VB.NET 2012 MVC 4【英文标题】:The GET and POST with an Action in the Controller - VB.NET 2012 MVC 4 【发布时间】:2012-11-06 16:21:28 【问题描述】:编辑:
函数“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 第二:
<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>
【问题讨论】:
【参考方案1】:不知道你问的是如何生成action的url,这里解释一下:Url.Action parameters?
或者如果你只是想提交,那么你只需要:
<input type=submit value="submit" />
您已经有了要发布到操作的表单,所以提交按钮就足够了。
我是否正确理解了您的问题?
更新:对于要传递的值,只需在您的操作中传递一个参数,如下所示:
<HttpPost()>
Function TheColorNameFunction(colorName as String) As ActionResult
MVC 的机制足够智能,可以根据表单中的任何字段或值构建复杂的对象
你的动作应该这样写:
@Url.Action("TheColorNameFunction", "Home", "green")
【讨论】:
我已经编辑了这个问题。问题是关于“在按下提交按钮后将其返回视图”。 HTML.BeginForm 接管了您在编写的更新中建议的内容。 View 在函数中通过“return View()”返回,但 View 被称为“TheRequest”,这就是它应该返回的 View。【参考方案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")
。
【讨论】:
该功能确实有效。它是不返回视图的 POST 值。我在函数中有一个“return View()”,但该视图被称为“TheRequest”。以上是关于控制器中带有操作的 GET 和 POST - VB.NET 2012 MVC 4的主要内容,如果未能解决你的问题,请参考以下文章