Я работаю над старым проектом, который я пытаюсь обновить и добавить кое-что, и столкнулся с проблемой с формой, которую я пытаюсь проверить.
Я попытался добавить поле RequiredValidator во все поля формы, но оно не сработало. Я заметил, что в проекте использовался «SX: VInput», и я никогда раньше этого не видел, так что это озадачивает меня. Код ниже:
Checkout.Aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Pages/Store.Master"
AutoEventWireup="true" CodeBehind="Checkout.aspx.cs"
Inherits="SportsStore.Pages.Cart.Checkout" %>
<asp:Content ID="Content1" ContentPlaceHolderID="bodyContent" runat="server">
<div id="content">
<div id="checkoutForm" class="checkout" runat="server">
<h2>Checkout Now</h2>
Please enter your details, and we'll ship your goods right away!
<div id="errors" data-valmsg-summary="true">
<ul>
<li style="display:inline"></li>
</ul>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode="BulletList" ShowMessageBox="true"/>
</div>
<h3>Ship to</h3>
<div>
<label for="name">Name:</label>
<SX:VInput Property="Name" ID="Name" runat="server"/>
</div>
<h3>Address</h3>
<div>
<label for="line1">Line 1:</label>
<SX:VInput Property="Line1" runat="server" />
</div>
<div>
<label for="line2">Line 2:</label>
<SX:VInput Property="Line2" runat="server" />
</div>
<div>
<label for="city">City:</label>
<SX:VInput Property="City" runat="server" />
</div>
<div>
<label for="state">State:</label>
<SX:VInput Property="State" runat="server" />
</div>
<div>
<label for="postalcode">Postal Code:</label>
<SX:VInput Property="PostalCode" runat="server" />
</div>
<h3>Account Information</h3>
<div>
<label for="email">Email:</label>
<SX:VInput Property="Email" runat="server" />
</div>
<div>
<label for="password">Password:</label>
<SX:VInput Property="Password" runat="server" />
</div>
<h3>Options</h3>
<input type="checkbox" id="giftwrap" name="giftwrap" value="true" />
Gift wrap these items?
<p class="actionButtons">
<button class="actionButtons" type="submit">Complete Order</button>
</p>
</div>
<div id="checkoutMessage" runat="server">
<h2>Thanks!</h2>
Thanks for placing your order. We'll ship your goods as soon as possible.
</div>
</div>
</asp:Content>
Vinput.cs
namespace SportsStore.Controls
{
public class VInput : WebControl
{
private string nspace = "SportsStore.Models";
private string model = "Order";
public string Namespace
{
get { return nspace; }
set { nspace = value; }
}
public string Model
{
get { return model; }
set { model = value; }
}
public string Property { get; set; }
protected override void RenderContents(HtmlTextWriter output)
{
output.AddAttribute(HtmlTextWriterAttribute.Id, Property.ToLower());
output.AddAttribute(HtmlTextWriterAttribute.Name, Property.ToLower());
Type modelType = Type.GetType(string.Format("{0}.{1}", Namespace, Model));
PropertyInfo propInfo = modelType.GetProperty(Property);
// var attr = propInfo.GetCustomAttribute<RequiredAttribute>(false);
// if (attr != null)
// {
// output.AddAttribute("data-val", "true");
// output.AddAttribute("data-val-required", attr.ErrorMessage);
// }
output.RenderBeginTag("input");
output.RenderEndTag();
}
public override void RenderBeginTag(HtmlTextWriter writer)
{
}
public override void RenderEndTag(HtmlTextWriter writer)
{
}
}
}
Как я могу получить эту форму для проверки перед отправкой на сервер? Он просто отправляет без проверки прямо сейчас, и мне нужно проверить. Спасибо.