Как передать HTML-таблицу контроллеру, а затем в таблицу mysql
Итак, вот суть того, что я хочу сделать:
Использование MvcMovie VS2015 ASP.NET учебник по веб-сайту, я использовал представления CRUD, которые он автоматически создавал. Я также создал свой собственный класс entity Currency, который похож на мою таблицу MySql. Я загрузил данные из Mysql с помощью DataAdapter и Datatable, преобразовал DataTable в IEnumerable моего класса Currency и передал его в качестве модели для моего представления, которое в данном случае я передаю в свой индекс. Что я в конечном счете хочу сделать, так это сделать таблицу в моем представлении как редактируемую таблицу, чтобы пользователям не приходилось переходить на разные страницы только для добавления, удаления или обновления каждой записи. Я сделал это, поставив на каждый < td> моего стола
@Html.TextBox(item.CcyCode, item.CcyCode)и в конце списка добавил несколько
@Html.TextBox("CcyCode")чтобы обслуживать новых участников.
Моя проблема заключается в том, как передать отображаемую HTML-таблицу из моего индекса в мой контроллер, а затем соответствующим образом обновить мою таблицу MySql.
Если есть более простой и лучший подход,пожалуйста, посоветуйте.
Пока что это мои коды:
Что я уже пробовал:
Пока что это мои коды:
Контроллер
private CurrencyMappingDBContext db = new CurrencyMappingDBContext(); // GET: /CurrencyMapping/ public ActionResult Index() { DataTable dt = new DataTable(); var dt2 = new MySystem.myDB_dbDataSet1.tbl_currencymappingDataTable(); MySqlConnectionStringBuilder bldr = new MySqlConnectionStringBuilder(); bldr.Server = "localhost"; bldr.Database = "my_db"; bldr.UserID = "x"; bldr.Password = "x"; MySqlConnection con = new MySqlConnection(bldr.ConnectionString); con.Open(); MySqlDataAdapter da = new MySqlDataAdapter(); MySqlCommand comm = new MySqlCommand("select * from tbl_currencymapping;", con); da.SelectCommand = comm; da.Fill(dt2); con.Close(); var result = from row in dt2.AsEnumerable() select new CurrencyMapping() { CcyName = row.CCY_NAME, CcyCode = row.CCY_CODE }; return View(result.AsEnumerable()); }
индексированное представление
@model IEnumerable<MvcMovie.Models.CurrencyMapping> @{ ViewBag.Title = "Index"; } <h2>Index</h2> <p> @Html.ActionLink("Create New", "Create") </p> @using (Html.BeginForm("Save","CurrencyMapping",FormMethod.Post)) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) <table class="table"> <tr> <th> @Html.DisplayNameFor(model => model.CcyCode) </th> <th> @Html.DisplayNameFor(model => model.CcyName) </th> <th></th> </tr> @foreach (var item in Model) { <tr> <td> @*@Html.DisplayFor(modelItem => item.CcyCode)*@ @Html.TextBox(item.CcyCode, item.CcyCode) </td> <td> @*@Html.DisplayFor(modelItem => item.CcyName)*@ @Html.TextBox(item.CcyName, item.CcyName) </td> <td> @Html.ActionLink("Edit", "Edit", new { id = item.CcyCode }) | @Html.ActionLink("Details", "Details", new { id = item.CcyCode }) | @Html.ActionLink("Delete", "Delete", new { id = item.CcyCode }) </td> </tr> } <tr> <td> @Html.TextBox("CcyCode") </td> <td> @Html.TextBox("CcyName") </td> </tr> </table> <div> <input type="submit" value="Create" class="btn btn-default" /> </div> }
Модель
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.Entity; using MySystem; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace MvcMovie.Models { public class CurrencyMapping { [Key] public string MarketCcyCode { get; set; } public string CurrencyName { get; set; } } public class CurrencyMappingDBContext : DbContext { public DbSet<CurrencyMapping> CurrencyMapping { get; set; } } }