- Mastering Entity Framework Core 2.0
- Prabhakaran Anbazhagan
- 252字
- 2021-07-02 21:16:41
Creating controller action
The changes we made in the previous section need to be updated in the SelectList collection, which will be used by MVC to render the drop-down list. By default, MVC scaffolding provides a SelectList (we have commented on that line) that has Id in the Value field and needs to be modified to Url, otherwise it will display only numeric values on the screen (a serious security issue and not so user-friendly):
public IActionResult Create()
{
//ViewData["BlogId"] = new SelectList(_context.Blog, "Id", "Id");
ViewData["BlogId"] = new SelectList(_context.Blog, "Id", "Url");
return View();
}
The following screenshot shows the Url mapped to the BlogId control, but there is something additional that needs to be fixed. The BlogId should be either just Blog or Blog URL.
I will leave this part as an exercise, kindly make changes to all the labels associated with the BlogId column:

Posts create view
The same change needs to be applied to the Post action of Create as well:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult>
Create([Bind("Id,BlogId,Content,PublishedDateTime,Title")]
Post post)
{
...
ViewData["BlogId"] = new SelectList(_context.Blog, "Id", "Url",
post.BlogId);
return View(post);
}
The changes are reflected in the newly included/added items displayed on the screen (the Index action was already modified to list the Blog URLs):

List view with new post
We have updated the references to the Blog ID with Blog URLs in the Post Create (HTTP, GET, and POST) action. Let's update the same on the other actions as well.
- Expert C++
- 微服務設計原理與架構
- Flask Web開發入門、進階與實戰
- OpenStack Cloud Computing Cookbook(Fourth Edition)
- 人人都懂設計模式:從生活中領悟設計模式(Python實現)
- 琢石成器:Windows環境下32位匯編語言程序設計
- C語言從入門到精通
- Managing Microsoft Hybrid Clouds
- 零基礎輕松學C++:青少年趣味編程(全彩版)
- Mastering Apache Camel
- Python編程入門(第3版)
- HTML5 Canvas核心技術:圖形、動畫與游戲開發
- 程序員面試金典(第6版)
- R High Performance Programming
- Learning Rust