【发布时间】:2013-12-06 00:50:56
【问题描述】:
我希望有人可以在这里帮助我 - 我正在尝试为 Sitefinity 设置一个基本的 MVC 小部件,它将 POST 到外部 URL 以将用户登录到那里。问题是如果我使用常规 HTML 来执行此操作,由于 WebForms 处理表单的方式,小部件只能在纯 MVC 模式下工作。
我在 Google 上搜索了一下,发现有人解释说使用常规的“BeginForm”可以指定一个外部操作 URL:
Html.BeginForm(null, null, FormMethod.Post, new { @action="EXTERNAL_URL" })
这会产生以下打开表单标签:
<form action="EXTERNAL_URL" method="post">
这很好用,但仍然输出一个常规的 HTML 表单,它不适用于 Sitefinity,因此 Sitefinity 有自己的方法来生成可以在混合模式“Html.BeginFormSitefinity”下工作的表单。此方法具有所有相同的覆盖,但行为方式并不完全相同 - 当我尝试使用此代码时:
Html.BeginFormSitefinity(null, null, FormMethod.Post, new { @action="EXTERNAL_URL" })
这会产生以下打开的表单标签:
<form action="/TestProject/TestPage/Index" method="POST" name="defaultForm" action="EXTERNAL_URL">
如您所见,它弹出了第二个动作属性,而不是像默认 MVC 方法的行为那样覆盖动作属性。
我希望对 Sitefinity 工作原理有更深入了解的人可以在这里提供一些建议?
【问题讨论】:
-
如果它只是
BeginFormSitefinity呈现的内容,那么您为什么不直接“手工”编写 HTML 而不需要任何帮助:<form method="POST" name="defaultForm" action="EXTERNAL_URL">?
标签: asp.net-mvc webforms sitefinity