Hi,
/
I keep getting the following error. Do I need to remove the "$"
Server Error in '/' Application.
2 : $75.00 - Input string was not in a correct format.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.FormatException: 2 : $75.00 - Input string was not in a correct format.
Source Error:
Line 55: sql = @"INSERT INTO Items (Title, Description, Price, CategoryId, DatePosted, Condition, Duration) VALUES (@0, @1, @2, @3,GetDate(),@4, @5)";
Line 56: var parameters = new[]{Request["title"], Request["description"], Request["price"], Request["categoryId"], Request["condition"],Request["duration"]};
Line 57: db.Execute(sql, parameters);
Line 58: Response.Redirect("~/Default.cshtml");
Line 59: result = "Your advertisement details have been sent to you by email";
\Sell.cshtml Line: 57
Code:
Code:
@{
var db =Database.Open("Classifieds");
var sql = "SELECT * FROM Categories";
var categories = db.Query(sql);
Page.Title="Post Your Advertisement";
var result = "";
if(IsPost){
if(Request["title"].IsEmpty()){
ModelState.AddError("title", "Please provide a title");
}
if(Request["title"].Length > 200){
ModelState.AddError("title","Your title cannot exceed 200 characters");
}
if(Request["description"].IsEmpty()){
ModelState.AddError("description", "You must provide a description");
}
if(Request["duration"].IsEmpty()){
ModelState.AddError("duration", "Please choose a duration");
}
if(Request["price"].IsEmpty()){
ModelState.AddError("price", "Please provide a price");
}
if(Request["price"].IsDecimal () && !Request["Price"].IsEmpty()){
ModelState.AddError("price", "Please provide a valid number for the price");
}
if(Request["condition"].IsEmpty()){
ModelState.AddError("condition", "Please state the condition of your item");
}
if(Request["email"].IsEmpty()){
ModelState.AddError("email", "Please provide your email address");
}
if(!Request["email"].IsEmpty() && !Functions.IsValidEmail(Request["Email"])){
ModelState.AddError("email", "Please provide a valid email address");
}
if(Request["categoryId"].IsEmpty()){
ModelState.AddError("categoryId", "Please choose a category for your item");
}
if(!ModelState.IsValid){
ModelState.AddFormError(@"Please fix the errors below before submitting the form");
}else {
var message ="<p>Details of your item for sale:</p>";
message += "Title: " + Request["title"] + "<br />";
message += "Description: " + Request["description"] + "<br />";
message += "Duration: " + Request["duration"] + "days<br />";
message += "Price: " + String.Format(" {0:c}", Request["price"].AsFloat());
message += "<br /> ";
message += "Condition: " + Request["condition"];
WebMail.Send(
to: Request["email"],
subject: "Advertisement Confirmation",
body: message,
isBodyHtml: true
);
sql = @"INSERT INTO Items (Title, Description, Price, CategoryId, DatePosted, Condition, Duration) VALUES (@0, @1, @2, @3,GetDate(),@4, @5)";
var parameters = new[]{Request["title"], Request["description"], Request["price"], Request["categoryId"], Request["condition"],Request["duration"]};
db.Execute(sql, parameters);
Response.Redirect("~/Default.cshtml");
result = "Your advertisement details have been sent to you by email";
}
}
}
<script type="text/javascript">
$(document).ready(function(){
$("#post-advert").validate({
rules:{
title:{
required: true,
maxlength: 200
},
description: "required",
duration: "required",
condition: "required",
categoryId: "required",
price:{
required: true,
number: true
},
email:{
required: true,
email: true,
},
},
messages:{
title:{
required: "*You must provide a title",
maxlength: "*Your title must not exceed 200 characters"
},
description: "*You must provide a description",
duration: "*You must indicate a duration",
condition: "*You must specify the condition of your item",
categoryId: "You must choose a category for your item",
price:{
required: "*You must provide a price",
number: "*Your price must be a valid number"
},
email:{
required: "*You must provide your email address",
email: "*You must provide a valid email address"
},
},
errorPlacement: function(error, element){
if(element.is(":radio")){
error.prependTo($("#radio-error"));
}
else{
error.insertAfter(element);
}
}
});
});
</script>
<div>@result</div>
<form id=" ="post-advert" action="@Href("~/Sell")" method="post">
<fieldset>
<legend>Post Your Advertisement</legend>
@Html.ValidationSummary(true)
<div>
<label for="title">Title</label>
</div>
<div>
<input type="text" name="title" value="@Request["title"]" />
@Html.ValidationMessage("title")
</div>
<div>
<label for="description">Description</label>
</div>
<div>
<textarea name="description">@Request["description"]</textarea>
@Html.ValidationMessage("description")
</div>
<div>
<label for="duration">Duration</label>
</div>
<div>
<select name="duration">
<option value="">--Choose One--</option>
<option value="1" @Helpers.Selected("Duration","1")>1 Day</option>
<option value="3" @Helpers.Selected("Duration","3")>3 Days</option>
<option value="7" @Helpers.Selected("Duration","7")>7 Days</option>
<option value="14" @Helpers.Selected("Duration","14")>14 Days</option>
</select>
@Html.ValidationMessage("duration")
</div>
<div>
<label for="price">Price*</label>
</div>
<div>
<input type="text" name="price" value="@Request["price"]" />
@Html.ValidationMessage("price")
</div>
<div>
<label for="categoryId">Category</label>
</div>
<div>
<select name="categoryId">
<option value="">--CHoose Category--</option>
@foreach(var category in categories){
<option value="@category.CategoryId"
@(category.CategoryId == Request["categoryId"].AsInt() ? " selected=\"selected\"" : "")>
@category.Category</option>
}
</select>
@Html.ValidationMessage("categoryId")
</div>
<div>
<label for="condition">Condition</label>
</div>
<div>
<input type="radio" name="condition" value="Fair" @Helpers.Checked("Condition","Fair") />Fair
<input type="radio" name="condition" value="Good" @Helpers.Checked("Condition","Good") />Good
<input type="radio" name="condition" value="As New" @Helpers.Checked("Condition","As New") />As New
<span id="radio-error"></span>"
@Html.ValidationMessage("condition")
</div>
<div>
<label for="email">Your Email Address</label>
</div>
<div>
<input type="text" name="email" value="@Request["email"]" />
@Html.ValidationMessage("email")
</div>
<div>
<input type="submit" name="submit" value="Post" />
</div>
</fieldset>
</form>