私は最初のASP.NETMVCアプリケーションを作成していますが、大きな問題が1つあります。フォームを表すコントロールを作成したいのですが、ラベルとテキストボックスを生成しようとすると、空のページが返されます。
だから、これは私のモデルファイル(MyModel.cs)です:
namespace MyNamespace.Models
{
public class MyModel
{
[Required(ErrorMessage = "You have to fill this field")]
[DisplayName("Input name")]
public string Name{ get; set; }
}
}
これは、私のコントロールを持つMyFormControlView.ascxファイルです。
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyNamespace.Models.MyModel>"%>
<div>
<%
using (Html.BeginForm())
{
Html.LabelFor(m => m.Name);
Html.TextBoxFor(m => m.Name);
Html.ValidationMessageFor(m => m.Name);
}
%>
</div>
そして、これは私がコントロールをレンダリングする私のIndex.aspxファイルです:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Main.Master" Inherits="System.Web.Mvc.ViewPage<System.Collections.IEnumerable>" %>
<asp:Content runat="server" ID="MainContent" ContentPlaceHolderID="MainContent">
This is my control test!
<%Html.RenderPartial("MyFormControlView", new MyNamespace.Models.MyModel { Name = "MyTestName"}); %>
</asp:Content>
したがって、アプリケーションを実行すると、結果は孤独なキャプションになります。「これは私の制御テストです!」生成されたページにはラベルやテキストボックスはありません。生成されたページのソースコードを調べると、<div>
ブロックが表示されていますが、内部テキストは空です。