2012-07-21 47 views
1

工作在用戶管理,有4頁:列表創建詳細編輯。所有4頁顯示部分ListPartial。 這裏是Ajax的腳本我用加載ListPartial:JQuery的阿賈克斯不MVC3

<script type="text/javascript"> 
    $(function() { 
     $('.leftContainer').load('ListPartial'); 
    }); 
</script> 

列表創建正確工作,但詳細編輯沒有。我已經找到了通過使用url「User/Details?id = 1」而不是正常的「User/Details/1」使其工作的方法。我如何使它正常工作正常的網址?

編輯:

ListPartial.cshtml(凡直接鏈接到用戶詳細信息頁面和4次名單創建詳細編輯使用Ajax加載它)

@model IEnumerable<ARS.Models.User> 
<div class="leftToolbar"> 
@using (Html.BeginForm("Create", "User")) 
{ 
    <button name="button" class="btnAdd" value="Create"></button> 
    <input id="Text1" type="text" class="txtSearch" /> 
} 
</div> 
<div class="smallList"> 
    <table> 
     <tr> 
      <th> 
       Email đăng nhập 
      </th> 
      <th> 
       Nhóm 
      </th> 
     </tr> 
     @foreach (var item in Model) 
     { 
      <tr> 
       <td> 
        @Html.ActionLink(Html.DisplayFor(modelItem => item.Email).ToString(), "Details", new { id=item.ID }) 
       </td> 
       <td> 
        @Html.DisplayFor(modelItem => item.Group.Name) 
       </td> 
      </tr> 
     } 
    </table> 
</div> 

UserController/Details

public ViewResult Details(int id) 
{ 
    User user = db.Users.Find(id); 
    return View(user); 
} 

的Global.asax

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    routes.MapRoute(
     "Default", // Route name 
     "{controller}/{action}/{id}", // URL with parameters 
     new { controller = "Account", action = "LogOn", id = UrlParameter.Optional } // Parameter defaults 
    ); 
} 
+0

這似乎與你的路由問題。發佈您的路由規則 – Iridio 2012-07-21 06:35:34

+0

這裏是:routes.MapRoute(「Default」,「{controller}/{action}/{id}」,新的{controller =「Account」,action =「LogOn」,id = UrlParameter。可選的 }); – 2012-07-21 06:42:13

+0

因此,我一直在MVC3中使用jQuery AJAX,所以你在做什麼不同?另外,你是否熟悉Url Helper?您可能需要閱讀。 http://msdn.microsoft.com/en-us/library/system.web.mvc.urlhelper(v=vs.98).aspx – jcolebrand 2012-07-21 06:51:56

回答

0

在控制器

// GET: /User/Edit/5 
public ActionResult Edit(int id) 
     { 
      //code.. 
     } 

// GET: /User/Details/5 
public ViewResult Details(int id) 
     { 
      //code.. 
     } 

在CSHTML頁

@Html.ActionLink("Edit", "Edit", new { id=item.UserId}) | 
@Html.ActionLink("Details", "Details", new { id = item.UserId }) 
+0

這裏的詳細信息功能:public ViewResult Details(int id){User user = db.Users.Find(id); return View(user);} – 2012-07-21 06:59:53

+0

我所做的與您的一樣。我在Web瀏覽器「User/Details?id = 1」中輸入了它的工作。但沒有與「用戶/細節/ 1」。 – 2012-07-21 07:21:34