0

これは私のGesAgenceページアクションです:

        public ActionResult GesAgence()
    {
        var test = new Models.J2VEntities();
        return View(test.agence);
    }

これは私の行動ですDeleting

        public ActionResult DeleteAg(string id)
    {
        Models.J2VEntities entity = new Models.J2VEntities();

        Models.agence model = (from p in entity.agence
                               where p.Idag == id
                               select p).SingleOrDefault();

        //Sauvgarde ds la BD
        entity.agence.DeleteObject(model);
        entity.SaveChanges();
        return View("gesAgence");
    }

だから私は削除後に成功メッセージを返す方法を考えています(私はTempDataで試しましたが、gesAgenceモデルを返さなければならないので成功しませんでしたTempData)。

4

3 に答える 3

0

このメソッドをajax経由で呼び出し、 ActionResultの代わりにJsonResultを返すことができます。結果を確認することで、ユーザーにメッセージを表示できます。

public JsonResult DeleteAg(string id)
{
    Models.J2VEntities entity = new Models.J2VEntities();

    Models.agence model = (from p in entity.agence
                           where p.Idag == id
                           select p).SingleOrDefault();

    //Sauvgarde ds la BD
    entity.agence.DeleteObject(model);
    entity.SaveChanges();
    var json = new
            {
                success = true
            };
    return Json(json);
}
于 2012-04-10T11:02:42.143 に答える
0

SuccessをViewBagに設定できます

  public ActionResult DeleteAg(string id)
    {
        Models.J2VEntities entity = new Models.J2VEntities();

        Models.agence model = (from p in entity.agence
                               where p.Idag == id
                               select p).SingleOrDefault();

        //Sauvgarde ds la BD
        entity.agence.DeleteObject(model);
        entity.SaveChanges();

        ViewData["Success"] = true;

        return View("gesAgence");
    }

ビューで

@if(ViewData["Success"] != null && (bool)ViewData["Success"]){
    <script>alert("Sucess!");</script>
}

これは私の見解です:

    <% if(ViewData != null && ViewData["Success"] != null && (bool)ViewData["Success"]){ %>
    <script type="text/javascript"> alert("Sucess!");</script>
<% } %>
      <div class="clear">
              &nbsp;
            </div>
            <div id="main">
            <h1> Demande preinscrit</h1>
            <ul class="listing">
    <% foreach (var item in Model) { %>
                <li>
               <div class="listinfo">
                    <h3>
                      <%: Html.DisplayFor(modelItem => item.Nomag) %>
                    </h3>
                    <p>
                      <%: Html.DisplayFor(modelItem => item.Idag) %>
                    </p>
                    <span class="price"> <%: Html.DisplayFor(modelItem => item.Adrag) %> <%: Html.DisplayFor(modelItem => item.Vilag) %> <%: Html.DisplayFor(modelItem => item.Gov) %></span> <span class="media">Tel : <%: Html.DisplayFor(modelItem => item.Telag) %> |</span> <%: Html.DisplayFor(modelItem => item.Mailag) %>
                  </div>
                  <div class="listingbtns">
                    <span class="listbuttons"><%: Html.ActionLink("Bloque", "Bloque", new {id= item.Idag}) %> </span>
                    <span class="listbuttons"><%: Html.ActionLink("Supprime", "DeleteAg", new { id = item.Idag })%></span>
                  </div>
                  <div class="clear">
                    &nbsp;
                  </div>
                </li>
    <% } %>

私はこのエラーを受け取りました:System.NullReferenceException: Object reference not set to an instance of an objectこの行で<% foreach (var item in Model) { %>

于 2012-04-10T11:06:26.107 に答える
0

Ajaxを使用して、ビューページからコントローラーを呼び出し、コントローラーが返したメッセージをポップアップ表示できます。次のようにしてみてください。

ビューページのスクリプト。

function onDeleteAg (id) {
        var answer = confirm("Are you sure you want to delete AG ?")
        if (answer) {
            $.ajax(
                {
                    type: "Get",
                    url: '<%= Url.Action("DeleteAg","YourControllerName") %>',
                    data: { agId: id },
                    success: function (data) {                        
                        //HERE--data is the message you that your controller DeleteAg method will return after it's called. you need to do something here to display this message(data) anywhere you want to . something like below. 
                         alert(data);                          

                    },
                    error: (function () { alert("Error! Ag was not deleted." ); })
                });
        }
    };

コントローラのメソッド。

public string DeleteAg(string agId)
    {
       try{

        Models.J2VEntities entity = new Models.J2VEntities();

        Models.agence model = (from p in entity.agence
                               where p.Idag == id
                               select p).SingleOrDefault();

        //Sauvgarde ds la BD
        entity.agence.DeleteObject(model);
        entity.SaveChanges();
}
       catch(Exception ex)
        {
          return "AG has not been deleted successfully;
        }

        return "AG has been deleted successfully;
    }
于 2012-04-10T13:10:52.700 に答える