溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MVC3----模型綁定

發(fā)布時間:2020-07-04 22:39:56 來源:網絡 閱讀:591 作者:1473348968 欄目:編程語言

模型綁定(用于獲取表單或者URL提交的參數)


1,基本模型綁定(你可以直接在參數中用字符串,整型變量,實體或者是List<實體>的方式獲取表單提交的參數)

例1:

public ViewResult Details(int id)
{
    Album album = db.Album.Find(id);
    return View(album);
}

匹配URL:

http://localhost/Home/Details/1

http://localhost/Home/Details?Id=1

匹配表單:

<input type="text" name="id" value="1" />


例2:

[HttpPost]
public ActionResult Create(Album album)
{
    if (ModelState.IsValid)
    {
	db.Album.Add(album);
	db.SaveChanges();
	return RedirectToAction("Index");  
    }

    ViewBag.GenreId = new SelectList(db.Genres, "GenreId", "Name", album.GenreId);
    ViewBag.ArtistId = new SelectList(db.Artists, "ArtistId", "Name", album.ArtistId);
    return View(album);
}

匹配表單:

<input type="text" name="id" value="1" />

<input type="text" name="name" value="tom" />



2,顯示模型綁定(UpdateModel與TryUpdateModel都用于顯示模型綁定)

UpdateModel:如果綁定期間出現(xiàn)錯誤,則會拋出異常

[HttpPost]
public ActionResult Edit()
{
    Album album = new Album();

    try
    {
	UpdateModel(album);
	db.Entry(album).State = EntityState.Modified;
	db.SaveChanges();
	return RedirectToAction("Index");
    }
    catch{
	ViewBag.GenreId = new SelectList(db.Genres, "GenreId", "Name", album.GenreId);
	ViewBag.ArtistId = new SelectList(db.Artists, "ArtistId", "Name", album.ArtistId);
	return View(album);
    }
}


TryUpdateModel:不會拋出異常,它會返回一個bool值,true為綁定成功,false為綁定失敗

[HttpPost]
public ActionResult Edit()
{
    Album album = new Album();
    if (TryUpdateModel(album))
    {
	db.Entry(album).State = EntityState.Modified;
	db.SaveChanges();
	return RedirectToAction("Index");
    }
    ViewBag.GenreId = new SelectList(db.Genres, "GenreId", "Name", album.GenreId);
    ViewBag.ArtistId = new SelectList(db.Artists, "ArtistId", "Name", album.ArtistId);
    return View(album);
}


3,模型狀態(tài)

[HttpPost]
public ActionResult Create(Album album)
{
    if (ModelState.IsValid)//模型狀態(tài)
    {
	db.Album.Add(album);
	db.SaveChanges();
	return RedirectToAction("Index");  
    }

    ViewBag.GenreId = new SelectList(db.Genres, "GenreId", "Name", album.GenreId);
    ViewBag.ArtistId = new SelectList(db.Artists, "ArtistId", "Name", album.ArtistId);
    return View(album);
}


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI