0
我正在編寫我的第一個ASP.NET MVC應用程序,對我來說存在一個大問題。我想製作一個代表表單的控件,但是當我嘗試生成標籤和文本框時,它會返回給我空白頁面。Html.LabelFor和Html.TextBoxFor生成empy html代碼
所以,這是我的模型文件(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>
因此,當我運行我的a應用結果是孤獨的標題:「這是我的控制測試!」並且生成的頁面上沒有標籤或文本框。 如果我檢查生成的頁面的源代碼,我可以看到我的塊,但它的內部文本是空的。 請你能幫我嗎?
你的代碼不適用於我,它會返回一個錯誤「需要分號」。但我想這是因爲我使用ASPxView引擎而不是Razor。我發現解決方案取決於你的代碼:<%= Html.LabelFor(m => m.Name)%> - 這對我很有用。謝謝! – Ceridan
@Ceridan:你是對的;我曾以爲你在使用剃刀。固定。 – SLaks