You should use an Ajax.BeginForm()
instead which will post the module correctly.
View
@model CSP1225.Models.CalculateModel
@using(Ajax.BeginForm("_Calculate","Home",new AjaxOptions { UpdateTargetId = "result" }) {
@Html.TextBoxFor(m => m.ItemPrice, new { id="price"})
<label class="control-label">Item Type</label>
@{
var Categories = ViewBag.CategoriesNames;}
@Html.DropDownListFor(m => m.CategoryID, new SelectList(Categories, "CategoryID", "CategoryName"), new { id= "SelectedCategory" })
@{var weights = ViewBag.Weights;}
@Html.DropDownListFor(m=> m.weightValue, new SelectList(weights,"WeightID","Name"), new {id="weight"})
<button type="submit">Submit</button>
}
Then, add an HttpPost
attribute to your _Calculate
ActionMethod.