0

コンストラクターで生成したコントローラーを含むモデルがあります。この例は少し単純化されていますが、モデルがどのように見えるかを説明する必要があります

public class ContactFormViewModel : ViewUserControl
{
    public ContactFormViewModel()
    {
        ContactCaptchaControl = new CaptchaControl()
        {
            CaptchaLength = 5
        };
    }

    [Required(ErrorMessage = "Please enter your name")]
    public string Name { get; set; }

    [Required(ErrorMessage = "Please enter the Captcha")]
    public string Captcha { get; set; }

    public CaptchaControl ContactCaptchaControl { get; set; }
}

さて、ビューは次のようになります

<%@ Control Language="C#" AutoEventWireup="true" Inherits="System.Web.Mvc.ViewUserControl<MVC.Models.Contact.ContactFormViewModel>" %>

<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm("Add", "Contact", FormMethod.Post, new { id = "frmContact", OnSubmit = "return false;" }))
   {%>
Name:
    <%: Html.TextBoxFor(model => model.Name, new { @class = "BendsoftTextbox" }) %>
    <%: Html.ValidationMessageFor(model => model.Name) %>

Captcha:
    <%: Html.DisplayFor(model => model.ContactCaptchaControl) %>

<% } %>
<% Html.EndForm(); %>

私の問題は、コントロール(ContactCaptchaControl)が希望どおりにレンダリングされないことです。これは、MVCでは悪い習慣ですか?

何かご意見は?

4

0 に答える 0