所以我試圖將.cshtml視圖中的這個剃刀語法轉換爲.cs中的助手擴展。 Darin在這裏有一個很棒的帖子:https://stackoverflow.com/a/8187441/1026459。但是,我有一些問題得到它的工作。如何在自定義助手中使用Html.BeginForm?
這是普通的標記
@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>
的增加是因爲我知道,與@Html.BeginForm()
一起使用的正常using
聲明在處理時添加了</form>
標記。
如何正確返回由.BeginForm
生成的表單?
謝謝Darin!史詩:)我有問題,實際上設法讓使用using語句出現在窗體內的任何東西,所以改變它無效似乎只是自然。我錯過的是ViewContext作家。 – 2012-04-13 22:01:06
+1喜歡它,簡單而有效!我現在可以用我自己的表單助手自動插入AntiForgeryToken – Darren 2012-11-02 10:47:00