David_Wimbley
Im, используя Ajax form html helper, может легко поменять его на html form html helper.
Но для HTML вы бы сделали что-то вроде этого
@using (Ajax.BeginForm("Create", "ControllName", null, new AjaxOptions()
{
OnBegin = "Form.onBeginFunctionHere",
OnSuccess = "Form.onSuccessFunctionHere",
OnFailure = "Form.onFailureFunctionHere",
OnComplete = "Form.onCompleteFunctionHere"
}))
{
@Html.Partial("/Your/First/Partial/Here.cshtml", PassModelInIfYouHaveOneHere)
@Html.Partial("/Your/Second/Partial/Here.cshtml", PassModelInIfYouHaveOneHere)
<input type="submit" value="Save"/>
}
Затем для вашего серверного кода Вы можете использовать действие create
[HttpPost]
public ActionResult Create(ItemMaster itemmaster)
{
if (ModelState.IsValid)
{
itemmaster.MRNo= "MR-001";
itemmaster.MRDate = DateTime.Now;
db.ItemMaster.Add(itemmaster);
db.SaveChanges();
return View(new ItemMaster());
}
else { ViewBag.ErrMsg = "Enter Mandatory Fields"; }
return View(itemmaster);
}
Единственная загвоздка здесь заключается в том, что атрибут name ваших HTML-элементов должен соответствовать свойству объекта begin, переданному вашему контроллеру (в данном случае вашему классу ItemMaster). Таким образом, до тех пор, пока правки в ваших двух партиалах являются свойствами, названными в честь свойств в ItemMaster. Вы должны передать это дальше.
Чтобы объяснить, что я имею в виду
<!-- This would be your first partial cshtml file -->
@Html.TextBox("ItemName")
<!-- This would be in your second partial cshtml file -->
@Html.TextBox("ItemValue")
Тогда ваш класс ItemMaster должен был бы выглядеть так
public class ItemMaster
{
public string ItemName {get;set;}
public double ItemValue {get;set;}
}
Пример функции javascript, которая будет использоваться в Ajax. BeginForm
var Form = {
onBeginFunctionHere = {
alert("This is prior to submitting to server side code. This is where you might pop up a loading spinner to show that your UI is busy");
},
onSuccessFunctionHere = {
alert("You may pass back something to indicate a failure (or use http code) but regardless, your call to the server side code was successful");
},
onCompleteFunctionHere = {
alert("regardless of success/failure, the server side ajax call is complete");
},
onFailureFunctionHere = {
alert("Something in your form submission failed");
}
};
David_Wimbley
Это функции javascript, которые вам нужно создать. В этих функциях javascript вы будете обрабатывать любые сообщения об ошибках или предупреждения, основанные на успехе/неудаче предпринятого действия.
Я отредактировал свой ответ, чтобы показать, что я имею в виду