2017-07-28 45 views
-1

我想添加和更新問題在同一個窗體上。 Here is the "SAYFA EKLE" that form. It means "Add New Page"in english.如何更新我的頁面詳細信息?在C#與mvc5

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動作。我可以從數據庫中檢索數據以使用相同的表單。

<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> 

那就是我的視圖也。那麼我如何更新我的記錄?另外我從數據庫中首先使用實體​​框架工作代碼。我在編碼方面真的很新穎。如果你幫我做實習項目,我會很高興。

回答

-1

首先。你完全錯過了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

+0

如果這是MVC 5,爲什麼你使用'ASP-action'和'ASP-controller'? – mason

+0

因爲MVC5有標籤助手。你可以使用它們。相信我,你會愛上他們的。 –

+0

https://forums.asp.net/t/2039284.aspx?What+is+the+advantage+of+using+Tag+Helpers+in+ASP+Net+MVC+5 –

相關問題