私はSQL Serverに2つのテーブル、テーブル1とテーブル2を持ち、以下のレコードを持っています。私の目的はに表示と更新両方のテーブルのレコードをMVCの単一のビューに表示します。MVSで親子モデルを使用する場合、CS1061とHtml.BeginFormを使用
私は2つの子クラス、TABLE1とtable2のを持っています。私はまた1つを持っています親クラス、両テーブル。 BothTables親クラスには、子クラスtable1とtable2が含まれています。私は、単一のビューからTABLE1および表2の両方からのレコードを表示することができる
MODEL
namespace www.example.com.Models
{
public class table1
{
public int id { get; set; }
public string column1 { get; set; }
}
public class table2
{
public int id { get; set; }
public string column1 { get; set; }
}
public class BothTables
{
public IEnumerable<table1> TableOne{ get; set; }
public IEnumerable<table2> TableTwo{ get; set; }
}
public class example_db : DbContext
{
public DbSet<table1> table1 { get; set; }
public DbSet<table2> table2 { get; set; }
}
}
CONTROLLER
namespace www.example.com.Controllers
{
public class ContentController : Controller
{
private example_db db = new example_db();
public ActionResult Details(int id)
{
using (var db = new example_db())
{
var model = new BothTables()
{
TableOne = db.table1.Where(x => x.id.Equals(id)).ToList(),
TableTwo = db.table2.Where(x => x.id.Equals(id)).ToList()
};
return View(model);
}
}
}
}
。
VIEW
@model www.example.com.Models.BothTables
@foreach (var item in Model.TableOne)
{
@Html.DisplayFor(x => item.column1)
}
@foreach (var item in Model.TableTwo)
{
@Html.DisplayFor(x => item.column1)
}
これは良いです。表1のfooと表2のバーが一度に表示されます。
私は、単一のビューからtable2のにレコードを挿入しますHtml.BeingFormを作成する方法を見つけ出すことはほぼ2週間のために今苦労しています。私は無数の記事を読んで、多くのYouTubeの動画を見てきました。私はこの解決策を見つけることができません。
これを私のコントローラに追加しました。
CONTROLLER
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Details(table2 TableTwo)
{
if (ModelState.IsValid)
{
db.table2.Add(TableTwo);
db.SaveChanges();
}
BothTables BothTables = new BothTables();
return View(BothTables);
}
私は表示するには、以下を追加しました。
@using (Html.BeginForm())
{
@Html.EditorFor(x => x.TableTwo.id)
}
私はwww.example.com/Content/Details/1に移動し、次のエラーが9行が強調表示し、表示されます赤:
CS1061 'IEnumerableをtable2の' 定義が含まれていません'id'と 'IEnumerable table2'型の最初の引数を受け入れる拡張メソッド 'id'はありませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)
Line 7:@using(Html.BeingForm ())
行8:{
行9:@ Html.EditorFor(x => x.TableTwo。ID)
10行目:}
'BothTables'に 'Id'プロパティがありません – AmirhosseinYari