#c# #html #asp.net-mvc
Вопрос:
Класс управления сохраняет входные данные в таблицу счетов-фактур.
Это мой контрольный класс
public ActionResult UpdateInvoice()
{ var getProduct = db.InventoryTbs.ToList();
SelectList list = new SelectList(getProduct, "PId", "PName", "PPrice");
ViewBag.Product = list;
return View();
}
[HttpPost]
public ActionResult UpdateInvoice(InvoiceTb idetail)
{
if (Session["User"] == null) // doesn't work
{
return RedirectToAction("Login");
}
else
{
try
{
db.InvoiceTbs.Add(idetail);
db.SaveChanges();
return RedirectToAction("ShowInvoice");
}
catch
{
return View();
}
}
}
Это мой UpdateInvoice.cshtml
. Здесь, если я введу количество, и стоимость счета будет сохранена в Invoice
таблице.
Я создал выпадающий список, в котором отображается товар, присутствующий в другой таблице(инвентарь). Но это не добавляется в таблицу счетов-фактур. После ввода количества я хочу, чтобы он рассчитал счет, взяв выбранную цену продукта из таблицы запасов
Я пробовал Json и некоторые другие способы, но безуспешно.
@model TallyBook_Store_Management_System.Models.InvoiceTb
@{
ViewBag.Title = "UpdateInvoice";
var product = ViewBag.Product;
}
<h2>UpdateInvoice</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>InvoiceTb</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.ListName, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList( "Product", "Select")
@Html.ValidationMessageFor(model => model.ListName, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.LQuantity, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.LQuantity, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.LQuantity, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Bill, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Bill, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Bill, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
Ответ №1:
Я решил проблему, передав выбранные в раскрывающемся списке данные из представления в контроллер. Затем я обновил конкретную таблицу базы данных в контроллере.
Если есть еще какие-то эффективные или хорошие способы, пожалуйста, поделитесь, я хотел бы изучить более эффективные подходы.