所以我试图将 .cshtml 视图中的这种剃刀语法转换为 .cs 中的辅助扩展。Darin 在这里发表了一篇很棒的文章:https ://stackoverflow.com/a/8187441/1026459 。但是,我在让它工作时遇到了一些问题。
这是普通的标记
@using (Html.BeginForm("Restore", "GlobalCrud"))
{
@Html.Hidden("entityId", "Id")
<input class="ui-icon ui-icon-power" type="submit"
onclick="return confirm('Clicking OK will restore this record');"
/>
}
这是扩展
public static MvcHtmlString EditOrDelete(this HtmlHelper html)
{
var s = html.BeginForm();
return MvcHtmlString.Create(s + " additional fields " + "</form>");
}
这是用途:
@using namespace.CustomHelper
@Html.EditOrDelete()
这是输出:
<form method="post" action="/Completed/Manage">
System.Web.Mvc.Html.MvcForm additional fields
</form>
大多数情况下,辅助扩展产生了我需要的东西。但是,我不确定如何将其转换回正确的 html 字符串。返回包含System.Web.Mvc.Html.MvcForm
在文本中。为了简洁起见,我在" additional fields "
这里添加,因为那里没有问题。添加</form>
是因为我知道附带的正常using
语句会在处理时@Html.BeginForm()
添加</form>
标签。
如何正确返回由生成的表单.BeginForm
?