Within a Monorail project, I have the following class which uses the
Castle.Components.Validator validation attributes:
public class NewProductViewModel
{
[ValidateNonEmpty("Name is a required field")]
public string Name { get; set; }
[ValidateDecimal("Price must be a decimal")]
public decimal Price { get; set; }
[ValidateInteger("SupplierId must be an integer")]
public int SupplierId { get; set; }
}
which gets passed as a parameter in this controller's action:
[AccessibleThrough(Verb.Post)]
public void Create([DataBind("newproductviewmodel", Validate = true)]
NewProductViewModel prod)
{
if (!HasValidationError(prod))
{
Logger.InfoFormat("The following NewProductViewModel has been
received:{0}", prod.ToString());
var tx = _session.BeginTransaction();
try
{
Logger.InfoFormat("Retrieving supplier with id <{0}> from
database", prod.SupplierId);
var supplier = _session.Load<Supplier>(prod.SupplierId);
var newProduct = new Product()
{
Supplier = supplier,
Price = prod.Price,
Name = prod.Name
};
_session.Save(newProduct);
tx.Commit();
RedirectToAction("list");
}
catch (Exception ex)
{
Flash["error"] = ex.Message;
Flash["newproductviewmodel"] = prod;
Logger.ErrorFormat("The following error has occured:{0}",
ex.Message);
RedirectToAction("new");
}
finally
{
tx.Dispose();
}
}
else
{
Logger.ErrorFormat("The following NewProductViewModel is
invalid:{0}", prod.ToString());
Flash["contact"] = prod;
Flash["error"] = GetErrorSummary(prod);
RedirectToAction("new");
}
}
However, if i set the Price to a value of "fadaadsa" instead of a decimal,
the HasValidationError doesn't say anything! Instead, it maps the Price
property to 0. I'm not sure what I should do, considering that the
documentation pretty much says that this is all there is to it. Thanks in
advance.
--
You received this message because you are subscribed to the Google Groups
"Castle Project Users" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/castle-project-users/-/gXJ5OikvuHUJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/castle-project-users?hl=en.