TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Praveen Kumar
NA
235
22.2k
How to display validation error message for Textbox
Apr 22 2020 4:16 AM
display validation error message for Textbox "NumberOfPeriods"
Error Msg : 'The ViewData item that has the key 'MethodCode' is of type 'System.String' but must be of type 'IEnumerable<SelectListItem>'.'
public class AssetBasisRuleViewModel
{
[DisplayName("Number of periods")]
public int? NumberOfPeriods { get; set; }
}
public sealed class AssetBasisRuleMethod : SmartCodes
{
public AssetBasisRuleMethod() { }
private AssetBasisRuleMethod(String meaning, String smartCode) : base(meaning, smartCode, "AssetBasisRuleMethod") { }
public static AssetBasisRuleMethod P { get { return new AssetBasisRuleMethod("Point-in-time", "P"); } }
public static AssetBasisRuleMethod A { get { return new AssetBasisRuleMethod("Average", "A"); } }
public static AssetBasisRuleMethod D { get { return new AssetBasisRuleMethod("ADB", "D"); } }
public static AssetBasisRuleMethod AA { get { return new AssetBasisRuleMethod("Average-of-averages", "AA"); } }
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(AssetBasisRuleViewModel model)
{
using (var dbContextScope = _dbContextScopeFactory.Create())
{
User user = _Login.GetCurrentUser();
if (!ModelState.IsValid)
{
model.PrepareSelectLists();
return View(model);
}
// Conditional validations
if (model.MethodCode == AssetBasisRuleMethod.A.SmartCode)
{
if (model.NumberOfPeriods == null)
{
ModelState.AddModelError("NumberOfPeriods", "The number of periods are required for averaging methods.");
return View(model);
}
}
else if (model.MethodCode == AssetBasisRuleMethod.AA.SmartCode)
{
model.NumberOfPeriods = 3;
}
else if (model.MethodCode == AssetBasisRuleMethod.P.SmartCode)
{
model.AveragePeriodCode = "P"; // Set to Period for non-average (not settable in UI)
}
// Default to "all" in period for valuation query when the rule type is ADB
else if (model.MethodCode == AssetBasisRuleMethod.D.SmartCode)
{
model.DateInPeriodCode = AssetBasisRuleDateInPeriod.A.SmartCode;
}
_repo.AddAssetBasisRule(abr, user);
dbContextScope.SaveChanges();
}
return RedirectToAction("Index");
}
Reply
Answers (
3
)
sample app that can do app-app comunication via name pipe
HTML div class="drag"