我有以下的html:天冬氨酸MVC 4創建類似的自定義HTML輔助方法Html.BeginForm
<div data-bind="stopBindings">
<div data-viewId="languageList" data-bind="with: viewModel">
<table>
<tr>
<td ><label for="availableLanguages">Available Languages:</label></td>
</tr>
<table>
</div>
</div>
我想打一個自定義的HTML幫助,並使用它像這樣(類似於Html.BeginForm
)
@Html.BeginView()
{
<table>
<tr>
<td ><label for="availableLanguages">Available Languages:</label></td>
</tr>
</table>
}
我開始做我的助手方法
public static class BeginViewHelper
{
public static MvcHtmlString BeginView(this HtmlHelper helper, string viewId)
{
var parentDiv = new TagBuilder("div");
parentDiv.MergeAttribute("data-bind", "preventBinding: true");
return new MvcHtmlString();
}
}
我讀了如何使基本的HTML幫手,但我看到的例子並沒有給我信息如何在我的情況下。我對asp mvc很陌生,每一個幫助將不勝感激。
更新2:
顯然我失去了一些東西。我打電話給我看:
@Html.BeginView()
{
<table>
<tr>
<td ><label >test</label></td>
</tr>
</table>
}
一切似乎都很好,它甚至具有智能感知。但在瀏覽器中輸出如下:
Omega.UI.WebMvc.Helpers.BeginViewHelper+MyView {
test
}
這是幫助我的方法:
namespace Omega.UI.WebMvc.Helpers
{
public static class BeginViewHelper
{
public static IDisposable BeginView(this HtmlHelper helper)
{
helper.ViewContext.Writer.Write("<div data-bind=\"preventBinding: true\">");
helper.ViewContext.Writer.Write("<div data-viewId=\"test\">");
return new MyView(helper);
}
class MyView : IDisposable
{
private HtmlHelper _helper;
public MyView(HtmlHelper helper)
{
this._helper = helper;
}
public void Dispose()
{
this._helper.ViewContext.Writer.Write("</div>");
this._helper.ViewContext.Writer.Write("</div>");
}
}
}
}
,我已經註冊了命名空間在〜/查看/ web.config中
<add namespace="Omega.UI.WebMvc.Helpers" />
請參閱上面有關您的帖子的更新。謝謝! – Mdb
我按照你的代碼做了我的實現,但結果並不如人意。你能看到我的帖子,我已經更新了一遍。 – Mdb
使用'使用(Html.BeginView())'而不是'@ Html.BeginView()' –