I have a view
#using (#Html.BeginForm())
{
<div class="form-horizontal">
<h4>Person</h4>
<hr/>
#Html.ValidationSummary(true)
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
#Html.HiddenFor(x => x.PersonId)
</div>
<div class="form-group">
#Html.LabelFor(m => m.Name)
#Html.TextBoxFor(m => m.Name)
#Html.ValidationMessageFor(m => m.Name)
</div>
<div class="form-group">
#Html.LabelFor(m => m.Gender)
#Html.DropDownListFor(m => m.Gender, Html.GetEnumSelectList(typeof(Gender)))
#Html.ValidationMessageFor(m => m.Gender)
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default"/>
</div>
</div>
</div>
}
And ViewModel
public class Person
{
[HiddenInput]
public int PersonId { get; set; }
[Required]
public string Name { get; set; }
public Gender Gender { get; set; }
}
public enum Gender
{
Male,
Female
}
The problem is validation complaints about PersonId being null.
It renders in browser as such (see, value is empty, but should be zero).
<div class="form-group">
<input data-val="true" data-val-required="The PersonId field is required." id="PersonId" name="PersonId" value="" type="hidden">
</div>
Could you please help? I'm using ASP.NET Core 1.8 RC2
Maybe you don't initialize object (Person) so the value is empty.
You could do as below then the value will not be empty.
Related
my html code
<div class="border backgroundWhite border-info">
<div class="row">
<div class="col-6">
<div class="form-group row">
<div class="col-4">
<label asp-for="Shift.TSBalance"></label>
</div>
<div class="col-6">
<input asp-for="Shift.TSBalance" class="form-control" id="sbalance"/>
</div>
</div>
<div class="form-group row">
<div class="col-4">
<label asp-for="Shift.TSupply"></label>
</div>
<div class="col-6">
<input asp-for="Shift.TSupply" class="form-control" id="supply" value="0" onkeyup="sum()" type="text"/>
</div>
<span asp-validation-for="Shift.TSupply" class="text-danger"></span>
</div>
<div class="form-group row">
<div class="col-4">
<label asp-for="Shift.TTotal"></label>
</div>
<div class="col-6">
<input asp-for="Shift.TTotal" class="form-control" readonly id="trbalance" value="0" onkeyup="sum()" type="text"/>
</div>
<span asp-validation-for="Shift.TTotal" class="text-danger"></span>
</div>
</div>
<div class="col-6">
<div class="form-group row">
<div class="col-7">
<label asp-for="Shift.TCBalance"></label>
</div>
<div class="col-5">
<input asp-for="Shift.TCBalance" class="form-control" id="calcebalance" value="0" onkeyup="sum()" type="text" readonly/>
</div>
</div>
<div class="form-group row">
<div class="col-7">
<label asp-for="Shift.TABalance"></label>
</div>
<div class="col-5">
<input asp-for="Shift.TABalance" class="form-control" id="actualebalance" value="0" onkeyup="sum()" type="text" />
</div>
</div>
<div class="form-group row">
<div class="col-7">
<label asp-for="Shift.TDifferance" class="text-info"></label>
</div>
<div class="col-5">
<input asp-for="Shift.TDifferance" class="form-control" style="background-color:blue;color:white;font-size:larger" id="differance" value="0" onkeyup="sum()" type="text" readonly />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
my page model
namespace Elwady.Pages.ShiftClosing
{
public class CreateModel : PageModel
{
private readonly ApplicationDbContext _db;
public SelectList Exlist { get; set; }
[BindProperty]
public Shift Shift { get; set; }
public CreateModel(ApplicationDbContext db)
{
_db = db;
}
public IActionResult OnGet()
{
this.Exlist = new SelectList(_db.ExpensesList, "Id", "ExName");
return Page();
}
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
};
_db.Shift.Add(Shift);
await _db.SaveChangesAsync();
return RedirectToPage("../Index");
}
}
}
my data table
public class Shift
{
public int Id { get; set; }
public int TSBalance { get; set; }
public int TSupply { get; set; }
public int TTotal { get; set; }
public int TCBalance { get; set; }
public int TABalance { get; set; }
public int TDifferance { get; set; }
}
attached image to show clearly how you can support
i tried to get this value through assigning it to variable in get handler but i can't and tried to Asp-for model variable but i get an error in the Ui
if i need to print out this form after submit to specific printer, how can i do that?
I'm facing an odd issue here.
I have a page where i have setup a PageRemote attribute to validate a field, and on the same page, i have 2 buttons that each call a distinct handler using the asp-page-handler property (1 to update the content, the other to delete it).
If i remove the PageRemote validation, the handlers for both buttons are triggered as expected, but when i leave the PageRemote validation on the page, the buttons specific handlers are not called, although the PageRemote handler is correctly triggered.
Furthermore, when leaving the PageRemote validation on the page, if i force its validation to return false, then afterwards the buttons trigger their respective handler, but if i do not force it, then the behaviour is as described earlier, where the handlers are not triggered.
Can someone explain me if there is a catch on using these two things on the same page, and/or how to overcome this?
Below is a sample of the page code:
public class EditModel : PageModel
{
private IConfiguration _configuration;
[Required(ErrorMessageResourceType = typeof(ErrorMessages),
ErrorMessageResourceName = nameof(ErrorMessages.SlugRequired))]
[MinLength(3, ErrorMessageResourceType = typeof(ErrorMessages),
ErrorMessageResourceName = nameof(ErrorMessages.SlugMinLength))]
[MaxLength(128, ErrorMessageResourceType = typeof(ErrorMessages),
ErrorMessageResourceName = nameof(ErrorMessages.SlugMaxLength))]
[RegularExpression(#"^[0-9a-zA-Z_/-]*$", ErrorMessageResourceType = typeof(ErrorMessages),
ErrorMessageResourceName = nameof(ErrorMessages.SlugAllowedCharacters))]
[PageRemote(ErrorMessageResourceType = typeof(ErrorMessages),
ErrorMessageResourceName = nameof(ErrorMessages.SlugDuplicate),
AdditionalFields = "__RequestVerificationToken,GenericContentDTO.GenericContent.GenericContentId",
HttpMethod = "post",
PageHandler = "CheckSlug")]
[Display(Name = "URL Title")]
[BindProperty]
public string Slug { get; set; }
[TempData]
public string FormResultMessage { get; set; }
[BindProperty]
public GenericContentDTO GenericContentDTO { get; set; }
public EditModel(IConfiguration configuration)
{
_configuration = configuration;
}
public IActionResult OnGet(Guid genericContentId)
{
if (genericContentId.ToString() == "")
{
return NotFound();
}
...
Code to load content
...
return Page();
}
public async Task<IActionResult> OnPostUpdate()
{
if (!ModelState.IsValid)
{
return Page();
}
...
Code to update content
...
return RedirectToPage(new { GenericContentId = GenericContentDTO.GenericContent.GenericContentId });
}
public IActionResult OnPostDelete()
{
...
Code to delete content
}
public JsonResult OnPostCheckSlug()
{
var token = HttpContext.Session.GetString("APIAuthorizationToken");
CheckSlugDTO CheckSlug = new CheckSlugDTO
{
Slug = Slug,
ContentId = GenericContentDTO.GenericContent.GenericContentId,
Exists = true
};
CheckSlug = APICommunicationHelper.PostData<CheckSlugDTO>(CheckSlug, _configuration["AppConfigs:APIAddress"] + "api/CheckGenericContentSlugExistance", token);
return new JsonResult(!CheckSlug.Exists);
}
}
And of the Razor Code:
#page "{GenericContentId:Guid}"
#model MyProject.Pages.Generic_Contents.EditModel
#{
}
<form method="post" id="editForm" name="editForm" enctype="multipart/form-data">
<h3>#TempData["FormResultMessage"]</h3>
<ul class="nav nav-tabs">
<li class="nav-item"><a class="nav-link active" data-toggle="tab" href="#main">Main</a></li>
<li class="nav-item"><a class="nav-link" data-toggle="tab" href="#meta">Meta</a></li>
</ul>
<div class="tab-content">
<div id="main" class="tab-pane active">
<br />
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
#Html.HiddenFor(model => model.GenericContentDTO.GenericContent.GenericContentId)
<div class="form-group">
<label asp-for="GenericContentDTO.GenericContent.Title" class="control-label"></label>
<input asp-for="GenericContentDTO.GenericContent.Title" class="form-control" />
<span asp-validation-for="GenericContentDTO.GenericContent.Title" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Slug" class="control-label"></label>
<input asp-for="Slug" class="form-control" />
<span asp-validation-for="Slug" class="text-danger"></span>
</div>
<div class="form-group row">
<div class="col-4">
<label asp-for="GenericContentDTO.MainImage" class="control-label"></label>
<input asp-for="GenericContentDTO.MainImage" type="file" class="form-control" />
</div>
</div>
<div class="form-group">
<label asp-for="GenericContentDTO.GenericContent.Summary" class="control-label"></label>
#Html.TextAreaFor(model => model.GenericContentDTO.GenericContent.Summary, new { #class = "form-control", #rows = 5 })
<span asp-validation-for="GenericContentDTO.GenericContent.Summary" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="GenericContentDTO.GenericContent.ContentText" class="control-label"></label>
#Html.TextAreaFor(model => model.GenericContentDTO.GenericContent.ContentText, new { #class = "form-control editorHtml" })
</div>
<div class="form-group">
<label asp-for="GenericContentDTO.GenericContent.IsActive" class="control-label"></label>
#Html.CheckBoxFor(model => model.GenericContentDTO.GenericContent.IsActive)
</div>
</div>
<div id="meta" class="tab-pane fade">
<div class="form-group">
<label asp-for="GenericContentDTO.GenericContent.MetaDescription" class="control-label"></label>
#Html.TextAreaFor(model => model.GenericContentDTO.GenericContent.MetaDescription, new { #class = "form-control", #rows = 5 })
<span asp-validation-for="GenericContentDTO.GenericContent.MetaDescription" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="GenericContentDTO.GenericContent.MetaKeywords" class="control-label"></label>
#Html.TextAreaFor(model => model.GenericContentDTO.GenericContent.MetaKeywords, new { #class = "form-control", #rows = 5 })
<span asp-validation-for="GenericContentDTO.GenericContent.MetaKeywords" class="text-danger"></span>
</div>
</div>
<div class="form-group text-right">
<a asp-area="" asp-page="/Generic-Contents" class="btn btn-secondary">Cancel</a>
<button type="submit" class="btn btn-danger" asp-page-handler="Delete">Delete Content</button>
<button type="submit" class="btn btn-primary" asp-page-handler="Update">Update Content</button>
</div>
</div>
</form>
#section Scripts {
#{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
Thanks
I use Modal and Load Partial view to it, but if I keep fields blank no validation happened and modal closed after click submit button.
Also I use Required annotation in my viewmodel. Also when I click submit it calls action direct in controller.
My Question: how can I display a validation message in modal form?
#section scripts{
<script>
function onFailureDefault(data) {
$("#AddOrderDetailModalDiv").valid()
}
function OpenAddOrderDetailTempItemOnSuccess() {
$("#AddOrderDetailModalDiv").modal("show");
}
function AddOrderDetailTempItemOnComplete() {
$("#AddOrderDetailModalDiv").modal("hide");
}
</script>
}
#model OrderDetailViewModel
#using (Html.BeginForm("AddOrderDetailTempItem", "Orders", FormMethod.Post, new
{
id = "AddForm",
#data_ajax = "true",
#data_ajax_method = "post",
#data_ajax_update = "#OrderDetailList",
#data_ajax_failure = "onFailureDefault",
#data_ajax_complete = "AddOrderDetailTempItemOnComplete"
}))
{
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable modal-lg" role="document">
<div class="modal-content">
<div class="modal-header bg-warning white">
<h5 class="modal-title" id="exampleModalCenterTitle">#( Model.ID > 0 ? "Edit Product" : "Add Product" )</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div>
#Html.HiddenFor(m => m.ID)
<div asp-validation-summary="All" class="text-danger"></div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label asp-for="ProductId" class="control-label"></label>
#Html.DropDownListFor(m => m.ProductId, Model.ProductsList, " ", htmlAttributes: new { #class = "select2 form-control" })
<span asp-validation-for="ProductId" class="text-danger"></span>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label asp-for="Quantity" class="control-label"></label>
<input asp-for="Quantity" required class="form-control" />
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label asp-for="Unit" class="control-label"></label>
#Html.DropDownListFor(m => m.Unit, Model.QuantityUnitsList, " ", htmlAttributes: new { #class = "form-control" })
<span asp-validation-for="Unit" class="text-danger"></span>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label asp-for="UnitPrice" class="control-label"></label>
<input asp-for="UnitPrice" class="form-control" />
</div>
</div>
<label id="ErrorMessage" asp-for="ErrorMessage" class="form-control" />
</div>
</div>
</div>
<div class="modal-footer">
<input type="submit" value="Add Product" id="postSave" class="btn btn-primary" />
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
}
[HttpPost]
public ActionResult AddOrderDetailTempItem(OrderDetailViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
List<OrderDetailViewModel> models = OrderDetailViewModelList;
var product = productService.SingleBy(model.ProductId);
if (model.ID > 0)
{
var updatedItem = models.Find(m => m.ID == model.ID);
updatedItem.Quantity = model.Quantity;
updatedItem.ProductId = model.ProductId;
updatedItem.UnitPrice = model.UnitPrice;
updatedItem.TotalPrice = model.Quantity * model.UnitPrice;
updatedItem.ProductName = product.Name;
updatedItem.Unit = model.Unit;
updatedItem.QuantityUnitsText = ((QuantityUnits)model.Unit).ToString();
updatedItem.isActive = true;
//mapper.Map(model,updatedItem);///
}
else
{
models.Add(new OrderDetailViewModel
{
ID = counter - 1,//models.Count + 1,
Quantity = model.Quantity,
ProductId = model.ProductId,
UnitPrice = model.UnitPrice,
TotalPrice = model.Quantity * model.UnitPrice,
ProductName = product.Name,
Unit = model.Unit,
QuantityUnitsText = ((QuantityUnits)model.Unit).ToString(),
isActive = true,
});
counter -= 1;
}
OrderDetailViewModelList = models;
return PartialView("_OrderDetailGridPartial", OrderDetailViewModelList.Where(a => a.isActive == true).ToList());
}
Parent View
#using (Html.BeginForm("AddOrder", "Orders", FormMethod.Post, new
{
id = "AddForm",
#data_ajax = "true",
#data_ajax_method = "post",
//#data_ajax_update = "#OrderDetailList",
#data_ajax_complete = "AddOrderOnComplete"
}))
{
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label asp-for="DeliveryDate" class="control-label"></label>
<input asp-for="DeliveryDate" class="form-control" type="date" />
<span asp-validation-for="DeliveryDate" class="text-danger"></span>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label asp-for="OrderDate" class="control-label"></label>
<input asp-for="OrderDate" class="form-control" disabled type="date" />
<span asp-validation-for="OrderDate" class="text-danger"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label asp-for="CustomerId" class="control-label"></label>
#Html.DropDownListFor(m => m.CustomerId, Model.CustomersList, "Please select", htmlAttributes: new { #class = "select2 form-control" })
<span asp-validation-for="CustomerId" class="text-danger"></span>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label asp-for="Notes" class="control-label"></label>
<textarea asp-for="Notes" rows="4" class="form-control"></textarea>
<span asp-validation-for="Notes" class="text-danger"></span>
</div>
</div>
</div>
<div class="content-header row">
<div class="content-header-left col-md-9 col-12 mb-2">
</div>
<div class="content-header-right text-md-right col-md-3 col-12">
<div class="form-group breadcrum-right">
<button type="button" class="btn bg-gradient-danger mr-1 mb-1 waves-effect waves-light">
<i class="feather icon-package">
#Html.ActionLink("Add Product", "AddOrderDetailTempItem", "Orders", routeValues: null, htmlAttributes: new
{
Style = "color:White;font-family:'Montserrat';padding-left: 10px;",
#data_ajax = "true",
#data_ajax_method = "Get",
#data_ajax_update = "#AddOrderDetailModalDiv",
#data_ajax_failure = "onFailureDefault",
#data_ajax_success = "OpenAddOrderDetailTempItemOnSuccess",
})
</i>
</button>
</div>
</div>
</div>
<div id="OrderDetailList">
<partial name="_OrderDetailGridPartial.cshtml" model="Model.OrderDetailViewModel" />
</div>
<div class="form-group col-sm-3">
<input type="submit" name="btn" value="Save" class="btn btn-primary" />
</div>
}
My Model
public class OrderDetailViewModel
{
public int ID { get; set; }
public int OrderId { get; set; }
[Required(ErrorMessage = "حقل إجباري")]
[Display(Name ="Product Name")]
public int ProductId { get; set; }
public string ProductName { get; set; }
[Required(ErrorMessage = "حقل إجباري")]
public int Unit { get; set; }
[Required(ErrorMessage = "حقل إجباري")]
public int Quantity { get; set; }
[Required(ErrorMessage = "حقل إجباري")]
public decimal UnitPrice { get; set; }
public decimal TotalPrice { get; set; }
public SelectList ProductsList { get; set; }
public SelectList QuantityUnitsList { get; set; }
public bool isActive { get; set; }
public string QuantityUnitsText { get; set; }
public string ErrorMessage { get; set; }
}
Your code is not complete,so I provide a work demo,you can check it.
Model:
public class Student
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
}
_OrderDetailGridPartial:
#model Student
<div id="MyModal" class="modal fade" role="dialog">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header" >
<h4 class="modal-title" >Update Role</h4>
</div>
<div class="modal-body">
<form id="myform" method="post">
<div>
<label>Id</label>
<input asp-for="Id" />
<span asp-validation-for="Id" class="text-danger"></span>
</div>
<div>
<label>Name</label>
<input asp-for="Name" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
<button id="button" class="btn btn-default">Save</button>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
Index View:
<button id="showmodal" class="btn btn-danger">
Click
</button>
<div id="partical">
<partial name="~/Views/Shared/_OrderDetailGridPartial.cshtml" />
</div>
#section scripts{
<script>
$("#showmodal").click(function () {
$('#MyModal').modal('show');
})
$("#button").click(function (e) {
e.preventDefault();
var model = $('#myform').serialize();
console.log(model);
$.ajax({
type: 'POST',
url: 'home/index',
async: false,
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: model,
success: function (result) {
$('#partical').html(result);
$('#MyModal').modal('show');
}
});
})
</script>
}
Action:
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult Index(Student student)
{
if (!ModelState.IsValid)
{
return PartialView("_OrderDetailGridPartial",student);
}
return View();
}
Test result
I am trying to make a default value take application, My view loads all my value with one editor. My controller is not getting any of the data from the view?
I want to be able to edit all my value at the same time? How can I do this
Model Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Demo.Models.Admin
{
public class MerchantPackageTransactionModel
{
public MerchantPackageTransactionModel()
{
FeatureList = new List<PackageFeatureModel>();
}
public int PackageId { get; set; }
public string PackageName { get; set; }
public string Image { get; set; }
public List<PackageFeatureModel> FeatureList { get; set; }
}
public class PackageFeatureModel
{
public int FeatureId { get; set; }
public string FeatureName { get; set; }
public string Type { get; set; }
public string DefaultValue { get; set; }
public string Value { get; set; }
}
}
View Code
#model Demo.Models.Admin.MerchantPackageTransactionModel
#{
ViewBag.Title = "CreatePackageTransaction";
Layout = "~/Themes/green/Views/Shared/_AdminDashboard.cshtml";
}
#using (Html.BeginForm())
{
<fieldset>
<legend>MerchantPackageTransactionModel</legend>
#Html.HiddenFor(model => model.PackageId)
<div class="editor-label">
#Html.LabelFor(model => model.PackageName)
</div>
<div class="editor-field">
#Html.EditorFor(model => model.PackageName)
</div>
<div class="editor-label">
#Html.LabelFor(model => model.Image)
</div>
<div class="editor-field">
#Html.EditorFor(model => model.Image)
</div>
#foreach (var item in Model.FeatureList)
{
#Html.HiddenFor(model => item.FeatureId)
<div class="editor-label">
#Html.Label("Feature Name")
</div>
<div class="editor-field">
#Html.DisplayFor(model => item.FeatureName)
</div>
<div class="editor-label">
#Html.Label("Type")
</div>
<div class="editor-field">
#Html.DisplayFor(model => item.Type)
</div>
<div class="editor-label">
#Html.Label("Default Value")
</div>
<div class="editor-field">
#Html.DisplayFor(model => item.DefaultValue)
</div>
<div class="editor-label">
#Html.Label("Value")
</div>
<div class="editor-field">
#Html.EditorFor(model => item.Value)
</div>
}
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
Controller code
public ActionResult CreatePackageTransaction(MerchantPackageTransactionModel objMerchantPackageTransactionModel)
{
foreach (var item in objMerchantPackageTransactionModel.FeatureList)
{
if (ModelState.IsValid)
{
GR.InsertOrUpdate(item);
}
}
GR.Save();
return View(objMerchantPackageTransactionModel);
}
What is happening is, because you are using
#Html.EditorFor(model => item.Value)
that is a command directly associated with the model and it is being used to render an input not accessed from the model (item), it is rendering an input html with the "wrong" name:
<input class="text-box single-line" id="item_Value" name="item.Value" type="text" value="">
when it should be
<input class="text-box single-line" id="FeatureList_0__Value" name="FeatureList[0].Value" type="text" value="">
And, as name does not match with the one from the model (FeatureList), the framework cannot do the automatic bind when the request hits the server.
You have a two options to fix it:
Create the html by hand, setting the correct (expected) name; or:
In the iteration use an index so that the EditorFor generates the input with the expected name:
#{
var index = 0;
}
#foreach (var item in Model.FeatureList)
{
#Html.HiddenFor(model => model.FeatureList[index].FeatureId)
<div class="editor-label">
#Html.Label("Feature Name")
</div>
<div class="editor-field">
#Html.DisplayFor(model => model.FeatureList[index].FeatureName)
</div>
<div class="editor-label">
#Html.Label("Type")
</div>
<div class="editor-field">
#Html.DisplayFor(model => model.FeatureList[index].Type)
</div>
<div class="editor-label">
#Html.Label("Default Value")
</div>
<div class="editor-field">
#Html.DisplayFor(model => model.FeatureList[index].DefaultValue)
</div>
<div class="editor-label">
#Html.Label("Value")
</div>
<div class="editor-field">
#Html.EditorFor(model => model.FeatureList[index].Value)
</div>
index++;
}
I have tested and it just work worked fine. Have a nice weekend! Regards.
In MVC 4 Need to check From And To Values in View like CompareValidator whether the To Value is greater than From Value?
Model:
[Required(ErrorMessage = "Please Enter From")]
public int FROM_RECORDVALUE { get; set; }
[Required(ErrorMessage = "Please Enter To")]
public int TO_RECORDVALUE { get; set; }
View :
<div class="row">
<div class="col-md-2">
<div class="form-group">
<label class="defaultlable">
#Model.getPickListMaster().getPickListHeaderName("RECORDVALUE") From
</label>
#Html.TextBoxFor(model => model.FROM_RECORDVALUE, new { #class = "form-control", #maxlength = #Model.getPickListMaster().MAX_LENGTH })
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label class="defaultlable">
#Model.getPickListMaster().getPickListHeaderName("RECORDVALUE") To
</label>
#Html.TextBoxFor(model => model.TO_RECORDVALUE,new { #class = "form-control", #maxlength = #Model.getPickListMaster().MAX_LENGTH})
</div>
</div>
</div>
How can i achieve this?. Please give me suggestions.