Fix #2407 - Add back the implicit [Required] for value types
This change adds a [Required] client validator when ModelMetadata.IsRequired == true. The bulk of the changes here are mechanical updates to test files.
This commit is contained in:
parent
e689863461
commit
b64fd7ae39
|
|
@ -32,14 +32,24 @@ namespace Microsoft.AspNet.Mvc.ModelBinding.Validation
|
|||
/// <inheritdoc />
|
||||
public void GetValidators(ClientValidatorProviderContext context)
|
||||
{
|
||||
var hasRequiredAttribute = false;
|
||||
|
||||
foreach (var attribute in context.ValidatorMetadata.OfType<ValidationAttribute>())
|
||||
{
|
||||
hasRequiredAttribute |= attribute is RequiredAttribute;
|
||||
|
||||
DataAnnotationsClientModelValidationFactory factory;
|
||||
if (_attributeFactories.TryGetValue(attribute.GetType(), out factory))
|
||||
{
|
||||
context.Validators.Add(factory(attribute));
|
||||
}
|
||||
}
|
||||
|
||||
if (!hasRequiredAttribute && context.ModelMetadata.IsRequired)
|
||||
{
|
||||
// Add a default '[Required]' validator for generating HTML if necessary.
|
||||
context.Validators.Add(new RequiredAttributeAdapter(new RequiredAttribute()));
|
||||
}
|
||||
}
|
||||
|
||||
private static Dictionary<Type, DataAnnotationsClientModelValidationFactory> BuildAttributeFactoriesDictionary()
|
||||
|
|
|
|||
|
|
@ -14,12 +14,53 @@ namespace Microsoft.AspNet.Mvc.ModelBinding.Validation
|
|||
private readonly IModelMetadataProvider _metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
|
||||
|
||||
[Fact]
|
||||
public void GetValidators_DoesNotAddRequiredAttribute_IfAttributeIsSpecifiedExplicitly()
|
||||
public void GetValidators_AddsRequiredAttribute_ForIsRequiredTrue()
|
||||
{
|
||||
// Arrange
|
||||
var provider = new DataAnnotationsClientModelValidatorProvider();
|
||||
var metadata = _metadataProvider.GetMetadataForProperty(typeof(DummyRequiredAttributeHelperClass),
|
||||
"WithAttribute");
|
||||
|
||||
var metadata = _metadataProvider.GetMetadataForProperty(
|
||||
typeof(DummyRequiredAttributeHelperClass),
|
||||
nameof(DummyRequiredAttributeHelperClass.ValueTypeWithoutAttribute));
|
||||
|
||||
var providerContext = new ClientValidatorProviderContext(metadata);
|
||||
|
||||
// Act
|
||||
provider.GetValidators(providerContext);
|
||||
|
||||
// Assert
|
||||
var validator = Assert.Single(providerContext.Validators);
|
||||
Assert.IsType<RequiredAttributeAdapter>(validator);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetValidators_DoesNotAddRequiredAttribute_ForIsRequiredFalse()
|
||||
{
|
||||
// Arrange
|
||||
var provider = new DataAnnotationsClientModelValidatorProvider();
|
||||
|
||||
var metadata = _metadataProvider.GetMetadataForProperty(
|
||||
typeof(DummyRequiredAttributeHelperClass),
|
||||
nameof(DummyRequiredAttributeHelperClass.ReferenceTypeWithoutAttribute));
|
||||
|
||||
var providerContext = new ClientValidatorProviderContext(metadata);
|
||||
|
||||
// Act
|
||||
provider.GetValidators(providerContext);
|
||||
|
||||
// Assert
|
||||
Assert.Empty(providerContext.Validators);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetValidators_DoesNotAddExtraRequiredAttribute_IfAttributeIsSpecifiedExplicitly()
|
||||
{
|
||||
// Arrange
|
||||
var provider = new DataAnnotationsClientModelValidatorProvider();
|
||||
|
||||
var metadata = _metadataProvider.GetMetadataForProperty(
|
||||
typeof(DummyRequiredAttributeHelperClass),
|
||||
nameof(DummyRequiredAttributeHelperClass.WithAttribute));
|
||||
|
||||
var providerContext = new ClientValidatorProviderContext(metadata);
|
||||
|
||||
|
|
@ -76,8 +117,9 @@ namespace Microsoft.AspNet.Mvc.ModelBinding.Validation
|
|||
|
||||
[Theory]
|
||||
[MemberData(nameof(DataAnnotationAdapters))]
|
||||
public void AdapterFactory_RegistersAdapters_ForDataAnnotationAttributes(ValidationAttribute attribute,
|
||||
Type expectedAdapterType)
|
||||
public void AdapterFactory_RegistersAdapters_ForDataAnnotationAttributes(
|
||||
ValidationAttribute attribute,
|
||||
Type expectedAdapterType)
|
||||
{
|
||||
// Arrange
|
||||
var adapters = new DataAnnotationsClientModelValidatorProvider().AttributeFactories;
|
||||
|
|
@ -103,8 +145,9 @@ namespace Microsoft.AspNet.Mvc.ModelBinding.Validation
|
|||
|
||||
[Theory]
|
||||
[MemberData(nameof(DataTypeAdapters))]
|
||||
public void AdapterFactory_RegistersAdapters_ForDataTypeAttributes(ValidationAttribute attribute,
|
||||
string expectedRuleName)
|
||||
public void AdapterFactory_RegistersAdapters_ForDataTypeAttributes(
|
||||
ValidationAttribute attribute,
|
||||
string expectedRuleName)
|
||||
{
|
||||
// Arrange
|
||||
var adapters = new DataAnnotationsClientModelValidatorProvider().AttributeFactories;
|
||||
|
|
@ -148,7 +191,9 @@ namespace Microsoft.AspNet.Mvc.ModelBinding.Validation
|
|||
[Required(ErrorMessage = "Custom Required Message")]
|
||||
public int WithAttribute { get; set; }
|
||||
|
||||
public int WithoutAttribute { get; set; }
|
||||
public int ValueTypeWithoutAttribute { get; set; }
|
||||
|
||||
public string ReferenceTypeWithoutAttribute { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -117,7 +117,9 @@ namespace Microsoft.AspNet.Mvc.ModelBinding.Validation
|
|||
// Assert
|
||||
var validators = context.Validators;
|
||||
|
||||
Assert.IsType<RangeAttributeAdapter>(Assert.Single(validators));
|
||||
Assert.Equal(2, validators.Count);
|
||||
Assert.Single(validators, v => v is RangeAttributeAdapter);
|
||||
Assert.Single(validators, v => v is RequiredAttributeAdapter);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -159,7 +161,9 @@ namespace Microsoft.AspNet.Mvc.ModelBinding.Validation
|
|||
// Assert
|
||||
var validators = context.Validators;
|
||||
|
||||
Assert.IsType<RangeAttributeAdapter>(Assert.Single(validators));
|
||||
Assert.Equal(2, validators.Count);
|
||||
Assert.Single(validators, v => v is RangeAttributeAdapter);
|
||||
Assert.Single(validators, v => v is RequiredAttributeAdapter);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -245,7 +249,7 @@ namespace Microsoft.AspNet.Mvc.ModelBinding.Validation
|
|||
private class CustomValidationAttributeOnProperty
|
||||
{
|
||||
[CustomValidation]
|
||||
public int Property { get; set; }
|
||||
public string Property { get; set; }
|
||||
}
|
||||
|
||||
private class ProductEntity
|
||||
|
|
|
|||
|
|
@ -96,38 +96,16 @@ namespace Microsoft.AspNet.Mvc.ModelBinding.Validation
|
|||
Assert.Single(validators, v => Assert.IsType<CustomModelValidatorAttribute>(v).Tag == "Property");
|
||||
}
|
||||
|
||||
// RangeAttribute is an example of a ValidationAttribute with it's own adapter type.
|
||||
[Fact]
|
||||
public void GetValidators_DataAnnotationsAttribute_SpecificAdapter()
|
||||
{
|
||||
// Arrange
|
||||
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
|
||||
var validatorProvider = TestClientModelValidatorProvider.CreateDefaultProvider();
|
||||
|
||||
var metadata = metadataProvider.GetMetadataForProperty(
|
||||
typeof(RangeAttributeOnProperty),
|
||||
nameof(RangeAttributeOnProperty.Property));
|
||||
var context = new ClientValidatorProviderContext(metadata);
|
||||
|
||||
// Act
|
||||
validatorProvider.GetValidators(context);
|
||||
|
||||
// Assert
|
||||
var validators = context.Validators;
|
||||
|
||||
Assert.IsType<RangeAttributeAdapter>(Assert.Single(validators));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetValidators_DataAnnotationsAttribute_DefaultAdapter()
|
||||
public void GetValidators_FromModelMetadataType_SingleValidator()
|
||||
{
|
||||
// Arrange
|
||||
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
|
||||
var validatorProvider = TestModelValidatorProvider.CreateDefaultProvider();
|
||||
|
||||
var metadata = metadataProvider.GetMetadataForProperty(
|
||||
typeof(CustomValidationAttributeOnProperty),
|
||||
nameof(CustomValidationAttributeOnProperty.Property));
|
||||
typeof(ProductViewModel),
|
||||
nameof(ProductViewModel.Id));
|
||||
var context = new ModelValidatorProviderContext(metadata);
|
||||
|
||||
// Act
|
||||
|
|
@ -136,28 +114,8 @@ namespace Microsoft.AspNet.Mvc.ModelBinding.Validation
|
|||
// Assert
|
||||
var validators = context.Validators;
|
||||
|
||||
Assert.IsType<DataAnnotationsModelValidator>(Assert.Single(validators));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetValidators_FromModelMetadataType_SingleValidator()
|
||||
{
|
||||
// Arrange
|
||||
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
|
||||
var validatorProvider = TestClientModelValidatorProvider.CreateDefaultProvider();
|
||||
|
||||
var metadata = metadataProvider.GetMetadataForProperty(
|
||||
typeof(ProductViewModel),
|
||||
nameof(ProductViewModel.Id));
|
||||
var context = new ClientValidatorProviderContext(metadata);
|
||||
|
||||
// Act
|
||||
validatorProvider.GetValidators(context);
|
||||
|
||||
// Assert
|
||||
var validators = context.Validators;
|
||||
|
||||
Assert.IsType<RangeAttributeAdapter>(Assert.Single(validators));
|
||||
var adapter = Assert.IsType<DataAnnotationsModelValidator>(Assert.Single(validators));
|
||||
Assert.IsType<RangeAttribute>(adapter.Attribute);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -165,12 +123,12 @@ namespace Microsoft.AspNet.Mvc.ModelBinding.Validation
|
|||
{
|
||||
// Arrange
|
||||
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
|
||||
var validatorProvider = TestClientModelValidatorProvider.CreateDefaultProvider();
|
||||
var validatorProvider = TestModelValidatorProvider.CreateDefaultProvider();
|
||||
|
||||
var metadata = metadataProvider.GetMetadataForProperty(
|
||||
typeof(ProductViewModel),
|
||||
nameof(ProductViewModel.Name));
|
||||
var context = new ClientValidatorProviderContext(metadata);
|
||||
var context = new ModelValidatorProviderContext(metadata);
|
||||
|
||||
// Act
|
||||
validatorProvider.GetValidators(context);
|
||||
|
|
@ -179,8 +137,8 @@ namespace Microsoft.AspNet.Mvc.ModelBinding.Validation
|
|||
var validators = context.Validators;
|
||||
|
||||
Assert.Equal(2, validators.Count);
|
||||
Assert.Single(validators, v => v is RegularExpressionAttributeAdapter);
|
||||
Assert.Single(validators, v => v is StringLengthAttributeAdapter);
|
||||
Assert.Single(validators, v => ((DataAnnotationsModelValidator)v).Attribute is RegularExpressionAttribute);
|
||||
Assert.Single(validators, v => ((DataAnnotationsModelValidator)v).Attribute is StringLengthAttribute);
|
||||
}
|
||||
|
||||
private class ValidatableObject : IValidatableObject
|
||||
|
|
|
|||
|
|
@ -589,8 +589,13 @@ Environment.NewLine;
|
|||
public void Editor_FindsCorrectDateOrTimeTemplate(string dataTypeName, string editFormatString, string expected)
|
||||
{
|
||||
// Arrange
|
||||
var expectedInput = "<input class=\"HtmlEncode[[text-box single-line]]\" id=\"HtmlEncode[[FieldPrefix]]\" name=\"HtmlEncode[[FieldPrefix]]\" type=\"HtmlEncode[[" +
|
||||
dataTypeName + "]]\" value=\"HtmlEncode[[" + expected + "]]\" />";
|
||||
var expectedInput =
|
||||
"<input class=\"HtmlEncode[[text-box single-line]]\" data-val=\"HtmlEncode[[true]]\" " +
|
||||
"data-val-required=\"HtmlEncode[[The DateTimeOffset field is required.]]\" id=\"HtmlEncode[[FieldPrefix]]\" " +
|
||||
"name=\"HtmlEncode[[FieldPrefix]]\" type=\"HtmlEncode[[" +
|
||||
dataTypeName +
|
||||
"]]\" value=\"HtmlEncode[[" + expected + "]]\" />";
|
||||
|
||||
var offset = TimeSpan.FromHours(0);
|
||||
var model = new DateTimeOffset(
|
||||
year: 2000,
|
||||
|
|
@ -636,8 +641,12 @@ Environment.NewLine;
|
|||
public void Editor_AppliesRfc3339(string dataTypeName, string editFormatString, string expected)
|
||||
{
|
||||
// Arrange
|
||||
var expectedInput = "<input class=\"HtmlEncode[[text-box single-line]]\" id=\"HtmlEncode[[FieldPrefix]]\" name=\"HtmlEncode[[FieldPrefix]]\" type=\"HtmlEncode[[" +
|
||||
dataTypeName + "]]\" value=\"HtmlEncode[[" + expected + "]]\" />";
|
||||
var expectedInput =
|
||||
"<input class=\"HtmlEncode[[text-box single-line]]\" data-val=\"HtmlEncode[[true]]\" " +
|
||||
"data-val-required=\"HtmlEncode[[The DateTimeOffset field is required.]]\" id=\"HtmlEncode[[FieldPrefix]]\" " +
|
||||
"name=\"HtmlEncode[[FieldPrefix]]\" type=\"HtmlEncode[[" +
|
||||
dataTypeName +
|
||||
"]]\" value=\"HtmlEncode[[" + expected + "]]\" />";
|
||||
|
||||
// Place DateTime-local value in current timezone.
|
||||
var offset = string.Equals("", dataTypeName) ? DateTimeOffset.Now.Offset : TimeSpan.FromHours(0);
|
||||
|
|
@ -689,8 +698,13 @@ Environment.NewLine;
|
|||
public void Editor_AppliesNonDefaultEditFormat(string dataTypeName, Html5DateRenderingMode renderingMode)
|
||||
{
|
||||
// Arrange
|
||||
var expectedInput = "<input class=\"HtmlEncode[[text-box single-line]]\" id=\"HtmlEncode[[FieldPrefix]]\" name=\"HtmlEncode[[FieldPrefix]]\" type=\"HtmlEncode[[" +
|
||||
dataTypeName + "]]\" value=\"HtmlEncode[[Formatted as 2000-01-02T03:04:05.0600000+00:00]]\" />";
|
||||
var expectedInput =
|
||||
"<input class=\"HtmlEncode[[text-box single-line]]\" data-val=\"HtmlEncode[[true]]\" " +
|
||||
"data-val-required=\"HtmlEncode[[The DateTimeOffset field is required.]]\" id=\"HtmlEncode[[FieldPrefix]]\" " +
|
||||
"name=\"HtmlEncode[[FieldPrefix]]\" type=\"HtmlEncode[[" +
|
||||
dataTypeName +
|
||||
"]]\" value=\"HtmlEncode[[Formatted as 2000-01-02T03:04:05.0600000+00:00]]\" />";
|
||||
|
||||
var offset = TimeSpan.FromHours(0);
|
||||
var model = new DateTimeOffset(
|
||||
year: 2000,
|
||||
|
|
|
|||
|
|
@ -17,8 +17,11 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
|||
public void CheckBoxOverridesCalculatedValuesWithValuesFromHtmlAttributes()
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"<input checked=""HtmlEncode[[checked]]"" id=""HtmlEncode[[Property3]]"" name=""HtmlEncode[[Property3]]"" type=""HtmlEncode[[checkbox]]"" " +
|
||||
@"value=""HtmlEncode[[false]]"" /><input name=""HtmlEncode[[Property3]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var expected =
|
||||
@"<input checked=""HtmlEncode[[checked]]"" data-val=""HtmlEncode[[true]]"" " +
|
||||
@"data-val-required=""HtmlEncode[[The Boolean field is required.]]"" id=""HtmlEncode[[Property3]]"" " +
|
||||
@"name=""HtmlEncode[[Property3]]"" type=""HtmlEncode[[checkbox]]"" " +
|
||||
@"value=""HtmlEncode[[false]]"" /><input name=""HtmlEncode[[Property3]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData());
|
||||
|
||||
// Act
|
||||
|
|
@ -34,8 +37,12 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
|||
public void CheckBoxExplicitParametersOverrideDictionary_ForValueInModel()
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"<input checked=""HtmlEncode[[checked]]"" id=""HtmlEncode[[Property3]]"" name=""HtmlEncode[[Property3]]"" type=""HtmlEncode[[checkbox]]"" " +
|
||||
@"value=""HtmlEncode[[false]]"" /><input name=""HtmlEncode[[Property3]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var expected =
|
||||
@"<input checked=""HtmlEncode[[checked]]"" data-val=""HtmlEncode[[true]]"" " +
|
||||
@"data-val-required=""HtmlEncode[[The Boolean field is required.]]"" id=""HtmlEncode[[Property3]]"" " +
|
||||
@"name=""HtmlEncode[[Property3]]"" type=""HtmlEncode[[checkbox]]"" " +
|
||||
@"value=""HtmlEncode[[false]]"" /><input name=""HtmlEncode[[Property3]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
|
||||
var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData());
|
||||
|
||||
// Act
|
||||
|
|
@ -81,8 +88,11 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
|||
public void CheckBoxCheckedWithOnlyName()
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"<input checked=""HtmlEncode[[checked]]"" id=""HtmlEncode[[Property1]]"" name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[checkbox]]"" " +
|
||||
@"value=""HtmlEncode[[true]]"" /><input name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var expected =
|
||||
@"<input checked=""HtmlEncode[[checked]]"" data-val=""HtmlEncode[[true]]"" " +
|
||||
@"data-val-required=""HtmlEncode[[The Boolean field is required.]]"" id=""HtmlEncode[[Property1]]"" " +
|
||||
@"name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[checkbox]]"" " +
|
||||
@"value=""HtmlEncode[[true]]"" /><input name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData());
|
||||
|
||||
// Act
|
||||
|
|
@ -96,8 +106,10 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
|||
public void CheckBoxUsesAttemptedValueFromModelState()
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"<input id=""HtmlEncode[[Property1]]"" name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" />" +
|
||||
@"<input name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var expected =
|
||||
@"<input data-val=""HtmlEncode[[true]]"" data-val-required=""HtmlEncode[[The Boolean field is required.]]"" " +
|
||||
@"id=""HtmlEncode[[Property1]]"" name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" />" +
|
||||
@"<input name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var valueProviderResult = new ValueProviderResult("false", "false", CultureInfo.InvariantCulture);
|
||||
var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData());
|
||||
helper.ViewData.ModelState.SetModelValue("Property1", valueProviderResult);
|
||||
|
|
@ -129,9 +141,12 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
|||
public void CheckBoxReplacesUnderscoresInHtmlAttributesWithDashes()
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"<input checked=""HtmlEncode[[checked]]"" id=""HtmlEncode[[Property1]]"" name=""HtmlEncode[[Property1]]"" " +
|
||||
@"Property1-Property3=""HtmlEncode[[Property3ObjValue]]"" type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" /><input " +
|
||||
@"name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var expected =
|
||||
@"<input checked=""HtmlEncode[[checked]]"" data-val=""HtmlEncode[[true]]"" " +
|
||||
@"data-val-required=""HtmlEncode[[The Boolean field is required.]]"" id=""HtmlEncode[[Property1]]"" " +
|
||||
@"name=""HtmlEncode[[Property1]]"" Property1-Property3=""HtmlEncode[[Property3ObjValue]]"" " +
|
||||
@"type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" /><input " +
|
||||
@"name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData());
|
||||
var htmlAttributes = new { Property1_Property3 = "Property3ObjValue" };
|
||||
|
||||
|
|
@ -184,9 +199,11 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
|||
public void CheckBoxWithPrefixAndEmptyName()
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"<input id=""HtmlEncode[[MyPrefix]]"" name=""HtmlEncode[[MyPrefix]]"" Property3=""HtmlEncode[[Property3Value]]"" " +
|
||||
@"type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" /><input name=""HtmlEncode[[MyPrefix]]"" type=""HtmlEncode[[hidden]]"" " +
|
||||
@"value=""HtmlEncode[[false]]"" />";
|
||||
var expected =
|
||||
@"<input data-val=""HtmlEncode[[true]]"" data-val-required=""HtmlEncode[[The Boolean field is required.]]"" " +
|
||||
@"id=""HtmlEncode[[MyPrefix]]"" name=""HtmlEncode[[MyPrefix]]"" Property3=""HtmlEncode[[Property3Value]]"" " +
|
||||
@"type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" /><input name=""HtmlEncode[[MyPrefix]]"" type=""HtmlEncode[[hidden]]"" " +
|
||||
@"value=""HtmlEncode[[false]]"" />";
|
||||
var helper = DefaultTemplatesUtilities.GetHtmlHelper(model: false);
|
||||
var attributes = new Dictionary<string, object> { { "Property3", "Property3Value" } };
|
||||
helper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "MyPrefix";
|
||||
|
|
@ -202,9 +219,12 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
|||
public void CheckBoxWithComplexExpressionsEvaluatesValuesInViewDataDictionary()
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"<input checked=""HtmlEncode[[checked]]"" id=""HtmlEncode[[ComplexProperty_Property1]]"" name=""HtmlEncode[[ComplexProperty." +
|
||||
@"Property1]]"" type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" /><input name=""HtmlEncode[[ComplexProperty.Property1]]""" +
|
||||
@" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var expected =
|
||||
@"<input checked=""HtmlEncode[[checked]]"" data-val=""HtmlEncode[[true]]"" " +
|
||||
@"data-val-required=""HtmlEncode[[The Boolean field is required.]]"" id=""HtmlEncode[[ComplexProperty_Property1]]"" " +
|
||||
@"name=""HtmlEncode[[ComplexProperty." +
|
||||
@"Property1]]"" type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" /><input name=""HtmlEncode[[ComplexProperty.Property1]]""" +
|
||||
@" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetModelWithValidationViewData());
|
||||
|
||||
// Act
|
||||
|
|
@ -218,8 +238,10 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
|||
public void CheckBoxForWithNullContainer_TreatsBooleanAsFalse()
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"<input id=""HtmlEncode[[Property1]]"" name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" />" +
|
||||
@"<input name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var expected =
|
||||
@"<input data-val=""HtmlEncode[[true]]"" data-val-required=""HtmlEncode[[The Property1 field is required.]]"" " +
|
||||
@"id=""HtmlEncode[[Property1]]"" name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" />" +
|
||||
@"<input name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var viewData = GetTestModelViewData();
|
||||
var helper = DefaultTemplatesUtilities.GetHtmlHelper(viewData);
|
||||
var valueProviderResult = new ValueProviderResult("false", "false", CultureInfo.InvariantCulture);
|
||||
|
|
@ -238,8 +260,10 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
|||
public void CheckBoxForWithNonNullContainer_UsesPropertyValue(bool value, string expectedChecked)
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"<input {0}id=""HtmlEncode[[Property1]]"" name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" />" +
|
||||
@"<input name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var expected =
|
||||
@"<input {0}data-val=""HtmlEncode[[true]]"" data-val-required=""HtmlEncode[[The Property1 field is required.]]"" " +
|
||||
@"id=""HtmlEncode[[Property1]]"" name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" />" +
|
||||
@"<input name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
expected = string.Format(expected, expectedChecked);
|
||||
|
||||
var viewData = GetTestModelViewData();
|
||||
|
|
@ -261,8 +285,11 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
|||
public void CheckBoxForOverridesCalculatedParametersWithValuesFromHtmlAttributes()
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"<input checked=""HtmlEncode[[checked]]"" id=""HtmlEncode[[Property3]]"" name=""HtmlEncode[[Property3]]"" type=""HtmlEncode[[checkbox]]"" " +
|
||||
@"value=""HtmlEncode[[false]]"" /><input name=""HtmlEncode[[Property3]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var expected =
|
||||
@"<input checked=""HtmlEncode[[checked]]"" data-val=""HtmlEncode[[true]]"" " +
|
||||
@"data-val-required=""HtmlEncode[[The Property3 field is required.]]"" " +
|
||||
@"id=""HtmlEncode[[Property3]]"" name=""HtmlEncode[[Property3]]"" type=""HtmlEncode[[checkbox]]"" " +
|
||||
@"value=""HtmlEncode[[false]]"" /><input name=""HtmlEncode[[Property3]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData());
|
||||
|
||||
// Act
|
||||
|
|
@ -299,8 +326,10 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
|||
public void CheckBoxFor_UsesModelStateAttemptedValue(string attemptedValue, string expectedChecked)
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"<input {0}id=""HtmlEncode[[Property1]]"" name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" />" +
|
||||
@"<input name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var expected =
|
||||
@"<input {0}data-val=""HtmlEncode[[true]]"" data-val-required=""HtmlEncode[[The Property1 field is required.]]"" " +
|
||||
@"id=""HtmlEncode[[Property1]]"" name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" />" +
|
||||
@"<input name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
expected = string.Format(expected, expectedChecked);
|
||||
|
||||
var viewData = GetTestModelViewData();
|
||||
|
|
@ -320,9 +349,11 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
|||
public void CheckBoxFor_WithObjectAttribute_MapsUnderscoresInNamesToDashes()
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"<input id=""HtmlEncode[[Property1]]"" name=""HtmlEncode[[Property1]]"" " +
|
||||
@"Property1-Property3=""HtmlEncode[[Property3ObjValue]]"" type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" /><input " +
|
||||
@"name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var expected =
|
||||
@"<input data-val=""HtmlEncode[[true]]"" data-val-required=""HtmlEncode[[The Property1 field is required.]]"" " +
|
||||
@"id=""HtmlEncode[[Property1]]"" name=""HtmlEncode[[Property1]]"" " +
|
||||
@"Property1-Property3=""HtmlEncode[[Property3ObjValue]]"" type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" /><input " +
|
||||
@"name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData());
|
||||
var htmlAttributes = new { Property1_Property3 = "Property3ObjValue" };
|
||||
|
||||
|
|
@ -337,9 +368,11 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
|||
public void CheckBoxForWith_AttributeDictionary_GeneratesExpectedAttributes()
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"<input id=""HtmlEncode[[Property1]]"" name=""HtmlEncode[[Property1]]"" " +
|
||||
@"Property3=""HtmlEncode[[Property3Value]]"" type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" /><input " +
|
||||
@"name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var expected =
|
||||
@"<input data-val=""HtmlEncode[[true]]"" data-val-required=""HtmlEncode[[The Property1 field is required.]]"" " +
|
||||
@"id=""HtmlEncode[[Property1]]"" name=""HtmlEncode[[Property1]]"" " +
|
||||
@"Property3=""HtmlEncode[[Property3Value]]"" type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" /><input " +
|
||||
@"name=""HtmlEncode[[Property1]]"" type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData());
|
||||
var attributes = new Dictionary<string, object> { { "Property3", "Property3Value" } };
|
||||
|
||||
|
|
@ -354,9 +387,11 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
|||
public void CheckBoxForWithPrefix()
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"<input id=""HtmlEncode[[MyPrefix_Property1]]"" name=""HtmlEncode[[MyPrefix.Property1]]"" Property3=""HtmlEncode[[PropValue]]"" " +
|
||||
@"type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" /><input name=""HtmlEncode[[MyPrefix.Property1]]"" type=""HtmlEncode[[hidden]]"" " +
|
||||
@"value=""HtmlEncode[[false]]"" />";
|
||||
var expected =
|
||||
@"<input data-val=""HtmlEncode[[true]]"" data-val-required=""HtmlEncode[[The Property1 field is required.]]"" " +
|
||||
@"id=""HtmlEncode[[MyPrefix_Property1]]"" name=""HtmlEncode[[MyPrefix.Property1]]"" Property3=""HtmlEncode[[PropValue]]"" " +
|
||||
@"type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" /><input name=""HtmlEncode[[MyPrefix.Property1]]"" type=""HtmlEncode[[hidden]]"" " +
|
||||
@"value=""HtmlEncode[[false]]"" />";
|
||||
var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetTestModelViewData());
|
||||
helper.ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix = "MyPrefix";
|
||||
var attributes = new Dictionary<string, object> { { "Property3", "PropValue" } };
|
||||
|
|
@ -372,9 +407,11 @@ namespace Microsoft.AspNet.Mvc.Rendering
|
|||
public void CheckBoxFor_WithComplexExpressions_DoesNotUseValuesFromViewDataDictionary()
|
||||
{
|
||||
// Arrange
|
||||
var expected = @"<input id=""HtmlEncode[[ComplexProperty_Property1]]"" name=""HtmlEncode[[ComplexProperty." +
|
||||
@"Property1]]"" type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" /><input name=""HtmlEncode[[ComplexProperty.Property1]]"" " +
|
||||
@"type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var expected =
|
||||
@"<input data-val=""HtmlEncode[[true]]"" data-val-required=""HtmlEncode[[The Property1 field is required.]]"" " +
|
||||
@"id=""HtmlEncode[[ComplexProperty_Property1]]"" name=""HtmlEncode[[ComplexProperty." +
|
||||
@"Property1]]"" type=""HtmlEncode[[checkbox]]"" value=""HtmlEncode[[true]]"" /><input name=""HtmlEncode[[ComplexProperty.Property1]]"" " +
|
||||
@"type=""HtmlEncode[[hidden]]"" value=""HtmlEncode[[false]]"" />";
|
||||
var helper = DefaultTemplatesUtilities.GetHtmlHelper(GetModelWithValidationViewData());
|
||||
|
||||
// Act
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ False";
|
|||
<ValidationInView class=""field-validation-error"" data-valmsg-for=""Error"" data-valmsg-replace=""true"">An error occurred.</ValidationInView>
|
||||
<input id=""Prefix!Property1"" name=""Prefix.Property1"" type=""text"" value="""" />
|
||||
<div class=""editor-label""><label for=""MyDate"">MyDate</label></div>
|
||||
<div class=""editor-field""><input class=""text-box single-line"" id=""MyDate"" name=""MyDate"" type=""datetime"" value=""02/01/2000 03:04:05 +00:00"" /> <ValidationInView class=""field-validation-valid"" data-valmsg-for=""MyDate"" data-valmsg-replace=""true""></ValidationInView></div>
|
||||
<div class=""editor-field""><input class=""text-box single-line"" data-val=""true"" data-val-required=""The MyDate field is required."" id=""MyDate"" name=""MyDate"" type=""datetime"" value=""02/01/2000 03:04:05 +00:00"" /> <ValidationInView class=""field-validation-valid"" data-valmsg-for=""MyDate"" data-valmsg-replace=""true""></ValidationInView></div>
|
||||
|
||||
True
|
||||
|
||||
|
|
|
|||
|
|
@ -236,9 +236,11 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
|
|||
{
|
||||
// Arrange
|
||||
var assemblyNamePrefix = GetAssemblyNamePrefix();
|
||||
var expected = @"<root data-root=""true""><input class=""form-control"" type=""number"" data-val=""true""" +
|
||||
var expected =
|
||||
@"<root data-root=""true""><input class=""form-control"" type=""number"" data-val=""true""" +
|
||||
@" data-val-range=""The field Age must be between 10 and 100."" data-val-range-max=""100"" "+
|
||||
@"data-val-range-min=""10"" id=""Age"" name=""Age"" value="""" /><a href="""">Back to List</a></root>";
|
||||
@"data-val-range-min=""10"" data-val-required=""The Age field is required."" " +
|
||||
@"id=""Age"" name=""Age"" value="""" /><a href="""">Back to List</a></root>";
|
||||
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
|
||||
var client = server.CreateClient();
|
||||
|
||||
|
|
|
|||
|
|
@ -9,14 +9,14 @@
|
|||
<div class="editor-label"><label for="Vin">Vin</label></div>
|
||||
<div class="editor-field"><input class="input-validation-error text-box single-line" data-val="true" data-val-length="The field Vin must be a string with a maximum length of 8." data-val-length-max="8" data-val-required="The Vin field is required." id="Vin" name="Vin" type="text" value="8765432112345678" /> <span class="field-validation-error" data-valmsg-for="Vin" data-valmsg-replace="true">The field Vin must be a string with a maximum length of 8.</span></div>
|
||||
<div class="editor-label"><label for="Year">Year</label></div>
|
||||
<div class="editor-field"><input class="input-validation-error text-box single-line" data-val="true" data-val-range="The field Year must be between 1980 and 2034." data-val-range-max="2034" data-val-range-min="1980" id="Year" name="Year" type="number" value="1979" /> <span class="field-validation-error" data-valmsg-for="Year" data-valmsg-replace="true">The field Year must be between 1980 and 2034.</span></div>
|
||||
<div class="editor-field"><input class="input-validation-error text-box single-line" data-val="true" data-val-range="The field Year must be between 1980 and 2034." data-val-range-max="2034" data-val-range-min="1980" data-val-required="The Year field is required." id="Year" name="Year" type="number" value="1979" /> <span class="field-validation-error" data-valmsg-for="Year" data-valmsg-replace="true">The field Year must be between 1980 and 2034.</span></div>
|
||||
<div class="editor-label"><label for="LastUpdatedTrackingId">LastUpdatedTrackingId</label></div>
|
||||
<div class="editor-field"><input class="text-box single-line" id="LastUpdatedTrackingId" name="LastUpdatedTrackingId" type="text" value="" /> <span class="field-validation-valid" data-valmsg-for="LastUpdatedTrackingId" data-valmsg-replace="true"></span></div>
|
||||
<div class="editor-label">
|
||||
<label for="InspectedDates">InspectedDates</label>
|
||||
</div>
|
||||
<div class="editor-field">
|
||||
<input class="text-box single-line" id="InspectedDates_0_" name="InspectedDates[0]" type="datetime" value="14/10/1979 00:00:00 -08:00" /><input class="text-box single-line" id="InspectedDates_1_" name="InspectedDates[1]" type="datetime" value="16/10/1979 00:00:00 -08:00" /><input class="text-box single-line" id="InspectedDates_2_" name="InspectedDates[2]" type="datetime" value="02/11/1979 00:00:00 -08:00" /><input class="text-box single-line" id="InspectedDates_3_" name="InspectedDates[3]" type="datetime" value="13/11/1979 00:00:00 -08:00" /><input class="text-box single-line" id="InspectedDates_4_" name="InspectedDates[4]" type="datetime" value="05/12/1979 00:00:00 -08:00" /><input class="text-box single-line" id="InspectedDates_5_" name="InspectedDates[5]" type="datetime" value="12/12/1979 00:00:00 -08:00" /><input class="text-box single-line" id="InspectedDates_6_" name="InspectedDates[6]" type="datetime" value="19/12/1979 00:00:00 -08:00" /><input class="text-box single-line" id="InspectedDates_7_" name="InspectedDates[7]" type="datetime" value="26/12/1979 00:00:00 -08:00" /><input class="text-box single-line" id="InspectedDates_8_" name="InspectedDates[8]" type="datetime" value="28/12/1979 00:00:00 -08:00" /><input class="text-box single-line" id="InspectedDates_9_" name="InspectedDates[9]" type="datetime" value="29/12/1979 00:00:00 -08:00" /><input class="text-box single-line" id="InspectedDates_10_" name="InspectedDates[10]" type="datetime" value="01/04/1980 00:00:00 -08:00" />
|
||||
<input class="text-box single-line" data-val="true" data-val-required="The DateTimeOffset field is required." id="InspectedDates_0_" name="InspectedDates[0]" type="datetime" value="14/10/1979 00:00:00 -08:00" /><input class="text-box single-line" data-val="true" data-val-required="The DateTimeOffset field is required." id="InspectedDates_1_" name="InspectedDates[1]" type="datetime" value="16/10/1979 00:00:00 -08:00" /><input class="text-box single-line" data-val="true" data-val-required="The DateTimeOffset field is required." id="InspectedDates_2_" name="InspectedDates[2]" type="datetime" value="02/11/1979 00:00:00 -08:00" /><input class="text-box single-line" data-val="true" data-val-required="The DateTimeOffset field is required." id="InspectedDates_3_" name="InspectedDates[3]" type="datetime" value="13/11/1979 00:00:00 -08:00" /><input class="text-box single-line" data-val="true" data-val-required="The DateTimeOffset field is required." id="InspectedDates_4_" name="InspectedDates[4]" type="datetime" value="05/12/1979 00:00:00 -08:00" /><input class="text-box single-line" data-val="true" data-val-required="The DateTimeOffset field is required." id="InspectedDates_5_" name="InspectedDates[5]" type="datetime" value="12/12/1979 00:00:00 -08:00" /><input class="text-box single-line" data-val="true" data-val-required="The DateTimeOffset field is required." id="InspectedDates_6_" name="InspectedDates[6]" type="datetime" value="19/12/1979 00:00:00 -08:00" /><input class="text-box single-line" data-val="true" data-val-required="The DateTimeOffset field is required." id="InspectedDates_7_" name="InspectedDates[7]" type="datetime" value="26/12/1979 00:00:00 -08:00" /><input class="text-box single-line" data-val="true" data-val-required="The DateTimeOffset field is required." id="InspectedDates_8_" name="InspectedDates[8]" type="datetime" value="28/12/1979 00:00:00 -08:00" /><input class="text-box single-line" data-val="true" data-val-required="The DateTimeOffset field is required." id="InspectedDates_9_" name="InspectedDates[9]" type="datetime" value="29/12/1979 00:00:00 -08:00" /><input class="text-box single-line" data-val="true" data-val-required="The DateTimeOffset field is required." id="InspectedDates_10_" name="InspectedDates[10]" type="datetime" value="01/04/1980 00:00:00 -08:00" />
|
||||
</div>
|
||||
<input type="submit" value="Update" />
|
||||
</form></div>
|
||||
|
|
@ -7,14 +7,14 @@
|
|||
<div class="editor-label"><label for="Vin">Vin</label></div>
|
||||
<div class="editor-field"><input class="text-box single-line" data-val="true" data-val-length="The field Vin must be a string with a maximum length of 8." data-val-length-max="8" data-val-required="The Vin field is required." id="Vin" name="Vin" type="text" value="87654321" /> <span class="field-validation-valid" data-valmsg-for="Vin" data-valmsg-replace="true"></span></div>
|
||||
<div class="editor-label"><label for="Year">Year</label></div>
|
||||
<div class="editor-field"><input class="text-box single-line" data-val="true" data-val-range="The field Year must be between 1980 and 2034." data-val-range-max="2034" data-val-range-min="1980" id="Year" name="Year" type="number" value="2013" /> <span class="field-validation-valid" data-valmsg-for="Year" data-valmsg-replace="true"></span></div>
|
||||
<div class="editor-field"><input class="text-box single-line" data-val="true" data-val-range="The field Year must be between 1980 and 2034." data-val-range-max="2034" data-val-range-min="1980" data-val-required="The Year field is required." id="Year" name="Year" type="number" value="2013" /> <span class="field-validation-valid" data-valmsg-for="Year" data-valmsg-replace="true"></span></div>
|
||||
<div class="editor-label"><label for="LastUpdatedTrackingId">LastUpdatedTrackingId</label></div>
|
||||
<div class="editor-field"><input class="text-box single-line" id="LastUpdatedTrackingId" name="LastUpdatedTrackingId" type="text" value="" /> <span class="field-validation-valid" data-valmsg-for="LastUpdatedTrackingId" data-valmsg-replace="true"></span></div>
|
||||
<div class="editor-label">
|
||||
<label for="InspectedDates">InspectedDates</label>
|
||||
</div>
|
||||
<div class="editor-field">
|
||||
<input class="text-box single-line" id="InspectedDates_0_" name="InspectedDates[0]" type="datetime" value="01/04/2001 00:00:00 -08:00" /><input class="text-box single-line" id="InspectedDates_1_" name="InspectedDates[1]" type="datetime" value="01/01/0001 00:00:00 +00:00" />
|
||||
<input class="text-box single-line" data-val="true" data-val-required="The DateTimeOffset field is required." id="InspectedDates_0_" name="InspectedDates[0]" type="datetime" value="01/04/2001 00:00:00 -08:00" /><input class="text-box single-line" data-val="true" data-val-required="The DateTimeOffset field is required." id="InspectedDates_1_" name="InspectedDates[1]" type="datetime" value="01/01/0001 00:00:00 +00:00" />
|
||||
</div>
|
||||
<input type="submit" value="Update" />
|
||||
</form></div>
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
<form action="/Customer/MvcTagHelper_Customer" method="post">
|
||||
<div>
|
||||
<label class="order" for="Number">Number</label>
|
||||
<input class="form-control input-validation-error" type="number" data-val="true" data-val-range="The field Number must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" id="Number" name="Number" value="" />
|
||||
<input class="form-control input-validation-error" type="number" data-val="true" data-val-range="The field Number must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" data-val-required="The Number field is required." id="Number" name="Number" value="" />
|
||||
<span class="field-validation-error" data-valmsg-for="Number" data-valmsg-replace="true">The value '' is invalid.</span>
|
||||
</div>
|
||||
<div>
|
||||
|
|
@ -29,7 +29,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="order" for="Gender">Gender</label>
|
||||
<input type="radio" value="Male" id="Gender" name="Gender" /> Male
|
||||
<input type="radio" value="Male" data-val="true" data-val-required="The Gender field is required." id="Gender" name="Gender" /> Male
|
||||
<input type="radio" value="Female" id="Gender" name="Gender" /> Female
|
||||
<span class="field-validation-valid" data-valmsg-for="Gender" data-valmsg-replace="true"></span>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="warehouse" for="Product">Product</label>
|
||||
<select data-val="true" data-val-range="The field Product must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" id="Product" name="Product"><option value="0">Product_0</option>
|
||||
<select data-val="true" data-val-range="The field Product must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" data-val-required="The Product field is required." id="Product" name="Product"><option value="0">Product_0</option>
|
||||
<option value="1">Product_1</option>
|
||||
<option value="2">Product_2</option>
|
||||
</select>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<form action="/Customer/MvcTagHelper_Customer" method="post">
|
||||
<div>
|
||||
<label class="order" for="Number">Number</label>
|
||||
<input class="form-control" type="number" data-val="true" data-val-range="The field Number must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" id="Number" name="Number" value="" />
|
||||
<input class="form-control" type="number" data-val="true" data-val-range="The field Number must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" data-val-required="The Number field is required." id="Number" name="Number" value="" />
|
||||
<span class="field-validation-valid" data-valmsg-for="Number" data-valmsg-replace="true"></span>
|
||||
</div>
|
||||
<div>
|
||||
|
|
@ -29,7 +29,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="order" for="Gender">Gender</label>
|
||||
<input type="radio" value="Male" id="Gender" name="Gender" /> Male
|
||||
<input type="radio" value="Male" data-val="true" data-val-required="The Gender field is required." id="Gender" name="Gender" /> Male
|
||||
<input type="radio" value="Female" id="Gender" name="Gender" /> Female
|
||||
<span class="field-validation-valid" data-valmsg-for="Gender" data-valmsg-replace="true"></span>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ HtmlEncode[[Address_1]]</textarea>;
|
|||
</div>
|
||||
<div>
|
||||
<label for="HtmlEncode[[Employee_Gender]]">HtmlEncode[[Gender]]</label>
|
||||
<input checked="HtmlEncode[[checked]]" id="HtmlEncode[[Employee_Gender]]" name="HtmlEncode[[Employee.Gender]]" type="HtmlEncode[[radio]]" value="HtmlEncode[[Female]]" /> Female
|
||||
<input checked="HtmlEncode[[checked]]" data-val="HtmlEncode[[true]]" data-val-required="HtmlEncode[[The Gender field is required.]]" id="HtmlEncode[[Employee_Gender]]" name="HtmlEncode[[Employee.Gender]]" type="HtmlEncode[[radio]]" value="HtmlEncode[[Female]]" /> Female
|
||||
<input id="HtmlEncode[[Employee_Gender]]" name="HtmlEncode[[Employee.Gender]]" type="HtmlEncode[[radio]]" value="HtmlEncode[[Male]]" /> Male
|
||||
</div>
|
||||
<div>
|
||||
|
|
@ -38,7 +38,7 @@ HtmlEncode[[Address_1]]</textarea>;
|
|||
<option>HtmlEncode[[1002]]</option>
|
||||
</select>
|
||||
</div>
|
||||
<input data-val="HtmlEncode[[true]]" data-val-range="HtmlEncode[[The field Number must be between 1 and 100.]]" data-val-range-max="HtmlEncode[[100]]" data-val-range-min="HtmlEncode[[1]]" id="HtmlEncode[[Employee_Number]]" name="HtmlEncode[[Employee.Number]]" type="HtmlEncode[[hidden]]" value="HtmlEncode[[1]]" />
|
||||
<input data-val="HtmlEncode[[true]]" data-val-range="HtmlEncode[[The field Number must be between 1 and 100.]]" data-val-range-max="HtmlEncode[[100]]" data-val-range-min="HtmlEncode[[1]]" data-val-required="HtmlEncode[[The Number field is required.]]" id="HtmlEncode[[Employee_Number]]" name="HtmlEncode[[Employee.Number]]" type="HtmlEncode[[hidden]]" value="HtmlEncode[[1]]" />
|
||||
<div class="HtmlEncode[[validation-summary-valid]]" data-valmsg-summary="HtmlEncode[[true]]"><ul><li style="display:none"></li>
|
||||
</ul></div>
|
||||
<input type="submit" />
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ Address_1</textarea>;
|
|||
</div>
|
||||
<div>
|
||||
<label for="Employee_Gender">Gender</label>
|
||||
<input checked="checked" id="Employee_Gender" name="Employee.Gender" type="radio" value="Female" /> Female
|
||||
<input checked="checked" data-val="true" data-val-required="The Gender field is required." id="Employee_Gender" name="Employee.Gender" type="radio" value="Female" /> Female
|
||||
<input id="Employee_Gender" name="Employee.Gender" type="radio" value="Male" /> Male
|
||||
</div>
|
||||
<div>
|
||||
|
|
@ -38,7 +38,7 @@ Address_1</textarea>;
|
|||
<option>1002</option>
|
||||
</select>
|
||||
</div>
|
||||
<input data-val="true" data-val-range="The field Number must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" id="Employee_Number" name="Employee.Number" type="hidden" value="1" />
|
||||
<input data-val="true" data-val-range="The field Number must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" data-val-required="The Number field is required." id="Employee_Number" name="Employee.Number" type="hidden" value="1" />
|
||||
<div class="validation-summary-valid" data-valmsg-summary="true"><ul><li style="display:none"></li>
|
||||
</ul></div>
|
||||
<input type="submit" />
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<form action="/MvcTagHelper_Home/EmployeeList" method="post">
|
||||
<div>
|
||||
<label for="z0__Number">Number</label>
|
||||
<input data-val="true" data-val-range="The field Number must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" disabled="disabled" id="z0__Number" name="[0].Number" readonly="readonly" type="text" value="0" />
|
||||
<input data-val="true" data-val-range="The field Number must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" data-val-required="The Number field is required." disabled="disabled" id="z0__Number" name="[0].Number" readonly="readonly" type="text" value="0" />
|
||||
<input class="form-control" type="number" id="z0__Number" name="[0].Number" value="0" />
|
||||
</div>
|
||||
<div>
|
||||
|
|
@ -21,13 +21,13 @@ EmployeeName_0</textarea>
|
|||
<div>
|
||||
|
||||
<label class="employee" for="z0__Gender">Gender</label>
|
||||
<select id="z0__Gender" name="[0].Gender"><option selected="selected">Male</option>
|
||||
<select data-val="true" data-val-required="The Gender field is required." id="z0__Gender" name="[0].Gender"><option selected="selected">Male</option>
|
||||
<option>Female</option>
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<label class="employee" for="z0__Remote">Remote</label>
|
||||
<input id="z0__Remote" name="[0].Remote" type="checkbox" value="true" /><input name="[0].Remote" type="hidden" value="false" />
|
||||
<input data-val="true" data-val-required="The Remote field is required." id="z0__Remote" name="[0].Remote" type="checkbox" value="true" /><input name="[0].Remote" type="hidden" value="false" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="employee" for="z0__OfficeNumber">OfficeNumber</label>
|
||||
|
|
@ -38,7 +38,7 @@ EmployeeName_0</textarea>
|
|||
</div>
|
||||
<div>
|
||||
<label for="z1__Number">Number</label>
|
||||
<input data-val="true" data-val-range="The field Number must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" disabled="disabled" id="z1__Number" name="[1].Number" readonly="readonly" type="text" value="1" />
|
||||
<input data-val="true" data-val-range="The field Number must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" data-val-required="The Number field is required." disabled="disabled" id="z1__Number" name="[1].Number" readonly="readonly" type="text" value="1" />
|
||||
<input class="form-control" type="number" id="z1__Number" name="[1].Number" value="1" />
|
||||
</div>
|
||||
<div>
|
||||
|
|
@ -53,13 +53,13 @@ EmployeeName_1</textarea>
|
|||
<div>
|
||||
|
||||
<label class="employee" for="z1__Gender">Gender</label>
|
||||
<select id="z1__Gender" name="[1].Gender"><option>Male</option>
|
||||
<select data-val="true" data-val-required="The Gender field is required." id="z1__Gender" name="[1].Gender"><option>Male</option>
|
||||
<option selected="selected">Female</option>
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<label class="employee" for="z1__Remote">Remote</label>
|
||||
<input id="z1__Remote" name="[1].Remote" type="checkbox" value="true" /><input name="[1].Remote" type="hidden" value="false" />
|
||||
<input data-val="true" data-val-required="The Remote field is required." id="z1__Remote" name="[1].Remote" type="checkbox" value="true" /><input name="[1].Remote" type="hidden" value="false" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="employee" for="z1__OfficeNumber">OfficeNumber</label>
|
||||
|
|
@ -70,7 +70,7 @@ EmployeeName_1</textarea>
|
|||
</div>
|
||||
<div>
|
||||
<label for="z2__Number">Number</label>
|
||||
<input data-val="true" data-val-range="The field Number must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" disabled="disabled" id="z2__Number" name="[2].Number" readonly="readonly" type="text" value="2" />
|
||||
<input data-val="true" data-val-range="The field Number must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" data-val-required="The Number field is required." disabled="disabled" id="z2__Number" name="[2].Number" readonly="readonly" type="text" value="2" />
|
||||
<input class="form-control" type="number" id="z2__Number" name="[2].Number" value="2" />
|
||||
</div>
|
||||
<div>
|
||||
|
|
@ -85,13 +85,13 @@ EmployeeName_2</textarea>
|
|||
<div>
|
||||
|
||||
<label class="employee" for="z2__Gender">Gender</label>
|
||||
<select id="z2__Gender" name="[2].Gender"><option selected="selected">Male</option>
|
||||
<select data-val="true" data-val-required="The Gender field is required." id="z2__Gender" name="[2].Gender"><option selected="selected">Male</option>
|
||||
<option>Female</option>
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<label class="employee" for="z2__Remote">Remote</label>
|
||||
<input checked="checked" id="z2__Remote" name="[2].Remote" type="checkbox" value="true" /><input name="[2].Remote" type="hidden" value="false" />
|
||||
<input checked="checked" data-val="true" data-val-required="The Remote field is required." id="z2__Remote" name="[2].Remote" type="checkbox" value="true" /><input name="[2].Remote" type="hidden" value="false" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="employee" for="z2__OfficeNumber">OfficeNumber</label>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="order" for="HtmlEncode[[ShippingDateTime]]">HtmlEncode[[ShippingDateTime]]</label>
|
||||
<input type="HtmlEncode[[datetime-local]]" id="HtmlEncode[[ShippingDateTime]]" name="HtmlEncode[[ShippingDateTime]]" value="HtmlEncode[[01/01/0001 00:00:00]]" />
|
||||
<input type="HtmlEncode[[datetime-local]]" data-val="HtmlEncode[[true]]" data-val-required="HtmlEncode[[The ShippingDateTime field is required.]]" id="HtmlEncode[[ShippingDateTime]]" name="HtmlEncode[[ShippingDateTime]]" value="HtmlEncode[[01/01/0001 00:00:00]]" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="order" for="HtmlEncode[[Products]]">HtmlEncode[[Products]]</label>
|
||||
|
|
@ -34,11 +34,11 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="order" for="HtmlEncode[[OrderDate]]">HtmlEncode[[OrderDate]]</label>
|
||||
<input type="HtmlEncode[[datetime]]" id="HtmlEncode[[OrderDate]]" name="HtmlEncode[[OrderDate]]" value="HtmlEncode[[0001/01/01/ A.D.]]" />
|
||||
<input type="HtmlEncode[[datetime]]" data-val="HtmlEncode[[true]]" data-val-required="HtmlEncode[[The OrderDate field is required.]]" id="HtmlEncode[[OrderDate]]" name="HtmlEncode[[OrderDate]]" value="HtmlEncode[[0001/01/01/ A.D.]]" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="order" for="HtmlEncode[[NeedSpecialHandle]]">HtmlEncode[[NeedSpecialHandle]]</label>
|
||||
<input checked="HtmlEncode[[checked]]" id="HtmlEncode[[NeedSpecialHandle]]" name="HtmlEncode[[NeedSpecialHandle]]" type="HtmlEncode[[checkbox]]" value="HtmlEncode[[true]]" /><input name="HtmlEncode[[NeedSpecialHandle]]" type="HtmlEncode[[hidden]]" value="HtmlEncode[[false]]" />
|
||||
<input checked="HtmlEncode[[checked]]" data-val="HtmlEncode[[true]]" data-val-required="HtmlEncode[[The NeedSpecialHandle field is required.]]" id="HtmlEncode[[NeedSpecialHandle]]" name="HtmlEncode[[NeedSpecialHandle]]" type="HtmlEncode[[checkbox]]" value="HtmlEncode[[true]]" /><input name="HtmlEncode[[NeedSpecialHandle]]" type="HtmlEncode[[hidden]]" value="HtmlEncode[[false]]" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="order" for="HtmlEncode[[PaymentMethod]]">HtmlEncode[[PaymentMethod]]</label>
|
||||
|
|
@ -49,7 +49,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="order" for="HtmlEncode[[Customer_Number]]">HtmlEncode[[Number]]</label>
|
||||
<input class="form-control" type="HtmlEncode[[number]]" data-val="HtmlEncode[[true]]" data-val-range="HtmlEncode[[The field Number must be between 1 and 100.]]" data-val-range-max="HtmlEncode[[100]]" data-val-range-min="HtmlEncode[[1]]" id="HtmlEncode[[Customer_Number]]" name="HtmlEncode[[Customer.Number]]" value="HtmlEncode[[1]]" />
|
||||
<input class="form-control" type="HtmlEncode[[number]]" data-val="HtmlEncode[[true]]" data-val-range="HtmlEncode[[The field Number must be between 1 and 100.]]" data-val-range-max="HtmlEncode[[100]]" data-val-range-min="HtmlEncode[[1]]" data-val-required="HtmlEncode[[The Number field is required.]]" id="HtmlEncode[[Customer_Number]]" name="HtmlEncode[[Customer.Number]]" value="HtmlEncode[[1]]" />
|
||||
<span class="HtmlEncode[[field-validation-valid]]" data-valmsg-for="HtmlEncode[[Customer.Number]]" data-valmsg-replace="HtmlEncode[[true]]"></span>
|
||||
</div>
|
||||
<div>
|
||||
|
|
@ -72,7 +72,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="order" for="HtmlEncode[[Customer_Gender]]">HtmlEncode[[Gender]]</label>
|
||||
<input type="HtmlEncode[[radio]]" value="HtmlEncode[[Male]]" id="HtmlEncode[[Customer_Gender]]" name="HtmlEncode[[Customer.Gender]]" /> Male
|
||||
<input type="HtmlEncode[[radio]]" value="HtmlEncode[[Male]]" data-val="HtmlEncode[[true]]" data-val-required="HtmlEncode[[The Model field is required.]]" id="HtmlEncode[[Customer_Gender]]" name="HtmlEncode[[Customer.Gender]]" /> Male
|
||||
<input type="HtmlEncode[[radio]]" value="HtmlEncode[[Female]]" checked="HtmlEncode[[checked]]" id="HtmlEncode[[Customer_Gender]]" name="HtmlEncode[[Customer.Gender]]" /> Female
|
||||
<span class="HtmlEncode[[field-validation-valid]]" data-valmsg-for="HtmlEncode[[Customer.Gender]]" data-valmsg-replace="HtmlEncode[[true]]"></span>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="order" for="ShippingDateTime">ShippingDateTime</label>
|
||||
<input type="datetime-local" id="ShippingDateTime" name="ShippingDateTime" value="01/01/0001 00:00:00" />
|
||||
<input type="datetime-local" data-val="true" data-val-required="The ShippingDateTime field is required." id="ShippingDateTime" name="ShippingDateTime" value="01/01/0001 00:00:00" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="order" for="Products">Products</label>
|
||||
|
|
@ -34,11 +34,11 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="order" for="OrderDate">OrderDate</label>
|
||||
<input type="datetime" id="OrderDate" name="OrderDate" value="0001/01/01/ A.D." />
|
||||
<input type="datetime" data-val="true" data-val-required="The OrderDate field is required." id="OrderDate" name="OrderDate" value="0001/01/01/ A.D." />
|
||||
</div>
|
||||
<div>
|
||||
<label class="order" for="NeedSpecialHandle">NeedSpecialHandle</label>
|
||||
<input checked="checked" id="NeedSpecialHandle" name="NeedSpecialHandle" type="checkbox" value="true" /><input name="NeedSpecialHandle" type="hidden" value="false" />
|
||||
<input checked="checked" data-val="true" data-val-required="The NeedSpecialHandle field is required." id="NeedSpecialHandle" name="NeedSpecialHandle" type="checkbox" value="true" /><input name="NeedSpecialHandle" type="hidden" value="false" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="order" for="PaymentMethod">PaymentMethod</label>
|
||||
|
|
@ -49,7 +49,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="order" for="Customer_Number">Number</label>
|
||||
<input class="form-control" type="number" data-val="true" data-val-range="The field Number must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" id="Customer_Number" name="Customer.Number" value="1" />
|
||||
<input class="form-control" type="number" data-val="true" data-val-range="The field Number must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" data-val-required="The Number field is required." id="Customer_Number" name="Customer.Number" value="1" />
|
||||
<span class="field-validation-valid" data-valmsg-for="Customer.Number" data-valmsg-replace="true"></span>
|
||||
</div>
|
||||
<div>
|
||||
|
|
@ -72,7 +72,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="order" for="Customer_Gender">Gender</label>
|
||||
<input type="radio" value="Male" id="Customer_Gender" name="Customer.Gender" /> Male
|
||||
<input type="radio" value="Male" data-val="true" data-val-required="The Model field is required." id="Customer_Gender" name="Customer.Gender" /> Male
|
||||
<input type="radio" value="Female" checked="checked" id="Customer_Gender" name="Customer.Gender" /> Female
|
||||
<span class="field-validation-valid" data-valmsg-for="Customer.Gender" data-valmsg-replace="true"></span>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="HtmlEncode[[order]]" for="HtmlEncode[[ShippingDateTime]]">HtmlEncode[[ShippingDateTime]]</label>
|
||||
<input id="HtmlEncode[[ShippingDateTime]]" name="HtmlEncode[[ShippingDateTime]]" type="HtmlEncode[[datetime-local]]" value="HtmlEncode[[01/01/0001 00:00:00]]" />
|
||||
<input data-val="HtmlEncode[[true]]" data-val-required="HtmlEncode[[The ShippingDateTime field is required.]]" id="HtmlEncode[[ShippingDateTime]]" name="HtmlEncode[[ShippingDateTime]]" type="HtmlEncode[[datetime-local]]" value="HtmlEncode[[01/01/0001 00:00:00]]" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="HtmlEncode[[order]]" for="HtmlEncode[[Products]]">HtmlEncode[[Products]]</label>
|
||||
|
|
@ -34,11 +34,11 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="HtmlEncode[[order]]" for="HtmlEncode[[OrderDate]]">HtmlEncode[[OrderDate]]</label>
|
||||
<input id="HtmlEncode[[OrderDate]]" name="HtmlEncode[[OrderDate]]" type="HtmlEncode[[datetime]]" value="HtmlEncode[[0001/01/01/ A.D.]]" />
|
||||
<input data-val="HtmlEncode[[true]]" data-val-required="HtmlEncode[[The OrderDate field is required.]]" id="HtmlEncode[[OrderDate]]" name="HtmlEncode[[OrderDate]]" type="HtmlEncode[[datetime]]" value="HtmlEncode[[0001/01/01/ A.D.]]" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="HtmlEncode[[order]]" for="HtmlEncode[[NeedSpecialHandle]]">HtmlEncode[[NeedSpecialHandle]]</label>
|
||||
<input checked="HtmlEncode[[checked]]" id="HtmlEncode[[NeedSpecialHandle]]" name="HtmlEncode[[NeedSpecialHandle]]" type="HtmlEncode[[checkbox]]" value="HtmlEncode[[true]]" /><input name="HtmlEncode[[NeedSpecialHandle]]" type="HtmlEncode[[hidden]]" value="HtmlEncode[[false]]" />
|
||||
<input checked="HtmlEncode[[checked]]" data-val="HtmlEncode[[true]]" data-val-required="HtmlEncode[[The NeedSpecialHandle field is required.]]" id="HtmlEncode[[NeedSpecialHandle]]" name="HtmlEncode[[NeedSpecialHandle]]" type="HtmlEncode[[checkbox]]" value="HtmlEncode[[true]]" /><input name="HtmlEncode[[NeedSpecialHandle]]" type="HtmlEncode[[hidden]]" value="HtmlEncode[[false]]" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="HtmlEncode[[order]]" for="HtmlEncode[[PaymentMethod]]">HtmlEncode[[PaymentMethod]]</label>
|
||||
|
|
@ -48,7 +48,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="HtmlEncode[[order]]" for="HtmlEncode[[Customer_Number]]">HtmlEncode[[Number]]</label>
|
||||
<input class="HtmlEncode[[form-control]]" data-val="HtmlEncode[[true]]" data-val-range="HtmlEncode[[The field Number must be between 1 and 100.]]" data-val-range-max="HtmlEncode[[100]]" data-val-range-min="HtmlEncode[[1]]" id="HtmlEncode[[Customer_Number]]" name="HtmlEncode[[Customer.Number]]" type="HtmlEncode[[number]]" value="HtmlEncode[[1]]" />
|
||||
<input class="HtmlEncode[[form-control]]" data-val="HtmlEncode[[true]]" data-val-range="HtmlEncode[[The field Number must be between 1 and 100.]]" data-val-range-max="HtmlEncode[[100]]" data-val-range-min="HtmlEncode[[1]]" data-val-required="HtmlEncode[[The Number field is required.]]" id="HtmlEncode[[Customer_Number]]" name="HtmlEncode[[Customer.Number]]" type="HtmlEncode[[number]]" value="HtmlEncode[[1]]" />
|
||||
<span class="HtmlEncode[[field-validation-valid]]" data-valmsg-for="HtmlEncode[[Customer.Number]]" data-valmsg-replace="HtmlEncode[[true]]"></span>
|
||||
</div>
|
||||
<div>
|
||||
|
|
@ -71,7 +71,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="HtmlEncode[[order]]" for="HtmlEncode[[Customer_Gender]]">HtmlEncode[[Gender]]</label>
|
||||
<input id="HtmlEncode[[Customer_Gender]]" name="HtmlEncode[[Customer.Gender]]" type="HtmlEncode[[radio]]" value="HtmlEncode[[Male]]" /> Male
|
||||
<input data-val="HtmlEncode[[true]]" data-val-required="HtmlEncode[[The Gender field is required.]]" id="HtmlEncode[[Customer_Gender]]" name="HtmlEncode[[Customer.Gender]]" type="HtmlEncode[[radio]]" value="HtmlEncode[[Male]]" /> Male
|
||||
<input checked="HtmlEncode[[checked]]" id="HtmlEncode[[Customer_Gender]]" name="HtmlEncode[[Customer.Gender]]" type="HtmlEncode[[radio]]" value="HtmlEncode[[Female]]" /> Female
|
||||
<span class="HtmlEncode[[field-validation-valid]]" data-valmsg-for="HtmlEncode[[Customer.Gender]]" data-valmsg-replace="HtmlEncode[[true]]"></span>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="order" for="ShippingDateTime">ShippingDateTime</label>
|
||||
<input id="ShippingDateTime" name="ShippingDateTime" type="datetime-local" value="01/01/0001 00:00:00" />
|
||||
<input data-val="true" data-val-required="The ShippingDateTime field is required." id="ShippingDateTime" name="ShippingDateTime" type="datetime-local" value="01/01/0001 00:00:00" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="order" for="Products">Products</label>
|
||||
|
|
@ -34,11 +34,11 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="order" for="OrderDate">OrderDate</label>
|
||||
<input id="OrderDate" name="OrderDate" type="datetime" value="0001/01/01/ A.D." />
|
||||
<input data-val="true" data-val-required="The OrderDate field is required." id="OrderDate" name="OrderDate" type="datetime" value="0001/01/01/ A.D." />
|
||||
</div>
|
||||
<div>
|
||||
<label class="order" for="NeedSpecialHandle">NeedSpecialHandle</label>
|
||||
<input checked="checked" id="NeedSpecialHandle" name="NeedSpecialHandle" type="checkbox" value="true" /><input name="NeedSpecialHandle" type="hidden" value="false" />
|
||||
<input checked="checked" data-val="true" data-val-required="The NeedSpecialHandle field is required." id="NeedSpecialHandle" name="NeedSpecialHandle" type="checkbox" value="true" /><input name="NeedSpecialHandle" type="hidden" value="false" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="order" for="PaymentMethod">PaymentMethod</label>
|
||||
|
|
@ -48,7 +48,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="order" for="Customer_Number">Number</label>
|
||||
<input class="form-control" data-val="true" data-val-range="The field Number must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" id="Customer_Number" name="Customer.Number" type="number" value="1" />
|
||||
<input class="form-control" data-val="true" data-val-range="The field Number must be between 1 and 100." data-val-range-max="100" data-val-range-min="1" data-val-required="The Number field is required." id="Customer_Number" name="Customer.Number" type="number" value="1" />
|
||||
<span class="field-validation-valid" data-valmsg-for="Customer.Number" data-valmsg-replace="true"></span>
|
||||
</div>
|
||||
<div>
|
||||
|
|
@ -71,7 +71,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<label class="order" for="Customer_Gender">Gender</label>
|
||||
<input id="Customer_Gender" name="Customer.Gender" type="radio" value="Male" /> Male
|
||||
<input data-val="true" data-val-required="The Gender field is required." id="Customer_Gender" name="Customer.Gender" type="radio" value="Male" /> Male
|
||||
<input checked="checked" id="Customer_Gender" name="Customer.Gender" type="radio" value="Female" /> Female
|
||||
<span class="field-validation-valid" data-valmsg-for="Customer.Gender" data-valmsg-replace="true"></span>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
<div>
|
||||
<label class="product" for="z0__Number">Number</label>
|
||||
<input type="number" id="z0__Number" name="[0].Number" value="0" />
|
||||
<input type="number" data-val="true" data-val-required="The Number field is required." id="z0__Number" name="[0].Number" value="0" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="product" for="z0__ProductName">ProductName</label>
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
<div>
|
||||
<label class="product" for="z1__Number">Number</label>
|
||||
<input type="number" id="z1__Number" name="[1].Number" value="1" />
|
||||
<input type="number" data-val="true" data-val-required="The Number field is required." id="z1__Number" name="[1].Number" value="1" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="product" for="z1__ProductName">ProductName</label>
|
||||
|
|
@ -45,7 +45,7 @@
|
|||
|
||||
<div>
|
||||
<label class="product" for="z2__Number">Number</label>
|
||||
<input type="number" id="z2__Number" name="[2].Number" value="2" />
|
||||
<input type="number" data-val="true" data-val-required="The Number field is required." id="z2__Number" name="[2].Number" value="2" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="product" for="z2__ProductName">ProductName</label>
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="Age">Age</label>
|
||||
<div class="col-md-10">
|
||||
<input class="form-control input-validation-error" type="number" data-val="true" data-val-range="The field Age must be between 10 and 100." data-val-range-max="100" data-val-range-min="10" id="Age" name="Age" value="1000" />
|
||||
<input class="form-control input-validation-error" type="number" data-val="true" data-val-range="The field Age must be between 10 and 100." data-val-range-max="100" data-val-range-min="10" data-val-required="The Age field is required." id="Age" name="Age" value="1000" />
|
||||
<span class="field-validation-error" data-valmsg-for="Age" data-valmsg-replace="true">The field Age must be between 10 and 100.</span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -36,7 +36,7 @@
|
|||
<span class="field-validation-valid" data-valmsg-for="Email" data-valmsg-replace="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" value="0" id="EmployeeId" name="EmployeeId" />
|
||||
<input type="hidden" value="0" data-val="true" data-val-required="The EmployeeId field is required." id="EmployeeId" name="EmployeeId" />
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="FullName">Full Name</label>
|
||||
<div class="col-md-10">
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="Age">Age</label>
|
||||
<div class="col-md-10">
|
||||
<input class="form-control" type="number" data-val="true" data-val-range="The field Age must be between 10 and 100." data-val-range-max="100" data-val-range-min="10" id="Age" name="Age" value="" />
|
||||
<input class="form-control" type="number" data-val="true" data-val-range="The field Age must be between 10 and 100." data-val-range-max="100" data-val-range-min="10" data-val-required="The Age field is required." id="Age" name="Age" value="" />
|
||||
<span class="field-validation-valid" data-valmsg-for="Age" data-valmsg-replace="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
<span class="field-validation-valid" data-valmsg-for="Email" data-valmsg-replace="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" value="0" id="EmployeeId" name="EmployeeId" />
|
||||
<input type="hidden" value="0" data-val="true" data-val-required="The EmployeeId field is required." id="EmployeeId" name="EmployeeId" />
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="FullName">Full Name</label>
|
||||
<div class="col-md-10">
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<div>
|
||||
<span class="bold">TestCarDealer</span>
|
||||
<em>SE</em>
|
||||
<input id="Dealer_Id" name="Dealer.Id" type="hidden" value="32" />
|
||||
<input data-val="true" data-val-required="The Id field is required." id="Dealer_Id" name="Dealer.Id" type="hidden" value="32" />
|
||||
</div>
|
||||
<div class="validation-summary-errors"><ul><li style="display:none"></li>
|
||||
</ul></div>
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
<span class="field-validation-error" data-valmsg-for="Vehicle.Vin" data-valmsg-replace="true">The field Vin must be a string with a maximum length of 8.</span>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<input class="input-validation-error text-box single-line" data-val="true" data-val-range="The field Year must be between 1980 and 2034." data-val-range-max="2034" data-val-range-min="1980" id="Vehicle_Year" name="Vehicle.Year" type="number" value="9001" />
|
||||
<input class="input-validation-error text-box single-line" data-val="true" data-val-range="The field Year must be between 1980 and 2034." data-val-range-max="2034" data-val-range-min="1980" data-val-required="The Year field is required." id="Vehicle_Year" name="Vehicle.Year" type="number" value="9001" />
|
||||
<span class="field-validation-error" data-valmsg-for="Vehicle.Year" data-valmsg-replace="true">The field Year must be between 1980 and 2034.</span>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<div>
|
||||
<span class="bold">TestCarDealer</span>
|
||||
<em>SE</em>
|
||||
<input id="Dealer_Id" name="Dealer.Id" type="hidden" value="43" />
|
||||
<input data-val="true" data-val-required="The Id field is required." id="Dealer_Id" name="Dealer.Id" type="hidden" value="43" />
|
||||
</div>
|
||||
<div class="validation-summary-errors"><ul><li>Make is invalid for region.</li>
|
||||
</ul></div>
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
<span class="field-validation-valid" data-valmsg-for="Vehicle.Vin" data-valmsg-replace="true"></span>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<input class="text-box single-line" data-val="true" data-val-range="The field Year must be between 1980 and 2034." data-val-range-max="2034" data-val-range-min="1980" id="Vehicle_Year" name="Vehicle.Year" type="number" value="2013" />
|
||||
<input class="text-box single-line" data-val="true" data-val-range="The field Year must be between 1980 and 2034." data-val-range-max="2034" data-val-range-min="1980" data-val-required="The Year field is required." id="Vehicle_Year" name="Vehicle.Year" type="number" value="2013" />
|
||||
<span class="field-validation-valid" data-valmsg-for="Vehicle.Year" data-valmsg-replace="true"></span>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="Id">Id</label>
|
||||
<div class="col-md-10">
|
||||
<input class="form-control text-box single-line" id="Id" name="Id" type="number" value="" />
|
||||
<input class="form-control text-box single-line" data-val="true" data-val-required="The Id field is required." id="Id" name="Id" type="number" value="" />
|
||||
<span class="field-validation-valid text-danger" data-valmsg-for="Id" data-valmsg-replace="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
<div class="form-group">
|
||||
<label class="control-label col-md-2" for="Id">Id</label>
|
||||
<div class="col-md-10">
|
||||
<input class="form-control text-box single-line" id="Id" name="Id" type="number" value="" />
|
||||
<input class="form-control text-box single-line" data-val="true" data-val-required="The Id field is required." id="Id" name="Id" type="number" value="" />
|
||||
<span class="field-validation-valid text-danger" data-valmsg-for="Id" data-valmsg-replace="true"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue