divのすべての不足要素を表示するカスタム検証セットを作成しています。私はそのdivを書き出すカスタム@Html.BeginForm()
メソッドを使用することができるようにしたいと思いますが、このナットはタグを書き出すhtml拡張子よりもちょっと難しいです文字列(フォームはデータ/コントロールをカプセル化し、最後は}
で閉じます)。自分の@ Html.BeginfBrm()をローリング
組み込みのBeginForm()
メソッドのメタデータバージョンを調べましたが、あまり役に立ちませんでした。基本的には、可能であればそのメソッドを拡張し、MvcHtmlString
のdiv
をJavaScriptから表示/非表示にします。
最終的に私が苦労しているのは、このカスタムヘルパをどのように書くのかを理解することです。
@using(Html.BeginForm())
{
...
}
私はこのような何かを行うことができるようにしたいと思います
:
@using(Html.VBeginForm())
{
...
}
をし、それは私の余分なHTMLレンダリング持っ
EDIT:
public class VBeginForm : IDisposable
{
private readonly HtmlHelper _helper;
public VBeginForm(HtmlHelper htmlHelper, string areaName)
{
_helper = htmlHelper;
var container = new TagBuilder("form");
container.GenerateId(areaName);
var writer = _helper.ViewContext.Writer;
writer.Write(container.ToString(TagRenderMode.StartTag));
}
public void Dispose()
{
_helper.ViewContext.Writer.Write("</form>");
}
}
の下の提案からのコードを追加します
これは間違いなく正しい方向に私を始めました。私はIDisposibleビットで少し失われています。私は2つのメソッドでIDisposibleを拡張するクラスを作成しようとしました。最初にフォームタグを書き出すライターを使用し、2番目のメソッドは終了タグを書き込むためのdisposeメソッドでした。 VS2010はそのアプローチで何か好きではありません。実際に私のメソッドIDisposibleを返すあなたの答えで言う...その戻り値の型をdispose()メソッドで呼び出す方法はありますか。...残念ながらここで少し混乱しています。 –
'using'ブロックは、ブロックの最後に置いたオブジェクトを' Dispose() 'します。 – SLaks
そうですが、私はそれを取得しますが、私のメソッドには、レンダリングされた終了フォームタグであるべきであることをどのように書きますか? –