如何更新我的页面详细信息? 在 C# 中使用 mvc5



我想在同一表单上添加和更新问题。 这是"SAYFA EKLE"的形式。它的意思是"添加新页面"在英语中。

public ActionResult Insert(Pages pages, string parent, string optactive) 
{
Pages pages_ = new Pages();
pages_.pageName = pages.pageName;
pages_.pageURL = pages.pageURL;
if (optactive == "on") pages_.isActive = true;
else pages_.isActive = false;
pages_.orderNumber = pages.orderNumber;
int parid = 0;
try
{
parid = Convert.ToInt32(parent);
}
catch
{
}
pages_.parentId = parid;
if (parid == 0) pages_.levelNumber = 0;
else
{
var partemp = db.Pages.Where(o => o.id == 
parid).FirstOrDefault();
if (partemp.levelNumber == 0) pages_.levelNumber = 1;
else pages_.levelNumber = 2;
}
db.Pages.Add(pages_);
db.SaveChanges();
return Redirect(Url.Content("~/Page/"));
}

这是我的添加操作。效果很好。

[HttpGet]
private ActionResult EditPost(string pageId)
{
var id = Convert.ToInt32(pageId);  //Edit Action
var tmppage = db.Pages.Where(o => o.id == id).First();
ViewBag.tmppage = tmppage;
ViewBag.pages = returnPages();
return View("Index");
} 

这也是我的EditPost操作。我可以使用相同的表单从 databas 中检索数据。

<div class="panel panel-success">
<div class="panel-heading text-center">SAYFA EKLE</div>
<div class="panel-body">
<form action="~/Page/Insert" method="post">
<table class="table table-bordered table-striped table-
hover">
<tr>
<td>Sayfa Adı</td>
<td><input type="text" class="form-control" name="pageName" 
placeholder="Sayfa ismini giriniz" value="@if (ViewBag.tmppage != null) { 
@ViewBag.tmppage.pageName } " required/></td>
</tr>
<tr>
<td>Sayfa Adresi</td>
<td><input type="text" class="form-control" name="pageURL" 
placeholder="Sayfa adresini giriniz"   required/></td>
</tr>
<tr>
<td>Aktif/Pasif</td>
<td>
<label class="radio-inline">
<input type="radio" name="optactive" value="on" required>Aktif
</label>
<label class="radio-inline">
<input type="radio" name="optactive" value="off" required>Pasif
</label>
</tr>

这也是我的观点。那么我怎样才能更新我的记录?此外,我首先使用数据库中的实体框架工作代码。 我对编码真的很陌生。如果你能帮我完成我的实习项目,我会很高兴的。

首先。你在这里完全错过了MVC原则。尝试阅读更多回合。

如果您在视图中使用表单和模型,则需要在操作之前使用 [HttpPost]。

[HttpPost]   // this 
public ActionResult Insert (Pages pages) 
{
Pages pages_ = new Pages();
....

你的get方法可以接受int值,你为什么要使用字符串?

[HttpGet]
private ActionResult EditPost(int? pageId)
{
if (pageId == null) 
...do somrthing;
ViewBag.tmppage = db.Pages.FirstOrDefault(o => o.id == pageId); 
ViewBag.pages = returnPages();
return View("Index");
}

并且您的视图必须有一个模型,在您的案例中哪些页面。 和 FORM 标记应该看起来不同。

@model Pages // your first line in the view
...
<form asp-action="Insert" asp-controller="Pages">
<input asp-for="pageName" class="" />
<input asp-for="isActive" class="" />
.... and etc.

这只是部分答案。只需多花一点时间阅读文档即可。但是,我确实建议您观看此视频,它们很短,但对您非常非常好。

https://www.youtube.com/playlist?list=PLYMOUCVo86jFPCV6_u2m8P2NE2LSijvLN

相关内容

最新更新