Vivek.anand34 Ответов: 1

Как сохранить два значения частичного представления в БД из основного представления в MVC


Уважаемый друг,

Я разработал 2-частичный, 1. Текстовые поля 2. сетки. Мне нужно сохранить два частичных значения представления с главной страницы.

Я дал отдельный код для текстового поля и сетки, мне нужно смешать этот код.

Что я уже пробовал:

Этот код для сохранения значений сетки:
[HttpPost]
public ActionResult Create (List< mrdtl> ci)
{
if (ModelState.Функция IsValid)
{
использование (TelecomContext dc = новый TelecomContext())
{
foreach (var i in ci)
{
постоянного тока.MRDtl.Добавить(я);
}
постоянного тока.Метод SaveChanges();
Видовая сумка.Сообщение = " данные успешно сохранены!";
ModelState.Четкий();
ci = new List< mrdtl & gt; { new MRDtl { IRateCode = "", ItemCode ="", QtyRequested = 0 } };
}
}
смотреть возвращение(ки);
}

Этот код для сохранения значений текстового поля, например, вот так:

[HttpPost]
public ActionResult Create(ItemMaster itemmaster)
{
if (ModelState.Функция IsValid)
{
itemmaster. MRNo= " MR-001";
итеммастер.MRDate = Дата-Время.Сейчас;
дБ.ItemMaster.Добавить(itemmaster);
дБ.Метод SaveChanges();
return View(новый ItemMaster());
}
else { ViewBag.ErrMsg = " Введите Обязательные Поля"; }
обратный вид(itemmaster);
}

1 Ответов

Рейтинг:
2

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");
}
};


Vivek.anand34

Что это за функция: OnBegin = " onBeginFunctionHere",
Onsuccess процедуры = "onSuccessFunctionHere",
OnFailure = " onFailureFunctionHere",
OnComplete = " onCompleteFunctionHere"

David_Wimbley

Это функции javascript, которые вам нужно создать. В этих функциях javascript вы будете обрабатывать любые сообщения об ошибках или предупреждения, основанные на успехе/неудаче предпринятого действия.

Я отредактировал свой ответ, чтобы показать, что я имею в виду