i'm using pagedlist.mvc create ajax pagination of data. i'm having problem url.action added data-href attribute, after partial view has been return.
when page loads first time issue doesn't occur, it's after have made ajax request using pagination results url.action doesn't seem bind correctly.
this action url.action should link (note 'route' attribute):
[route("project/{code}/request/{number}")] public actionresult details(string code, int number) { if (number == 0 || code == null) return new httpstatuscoderesult(httpstatuscode.badrequest); var viewmodel = _requestlogic.getirdetailsviewmodel(code, number); if (viewmodel == null) return httpnotfound(); return view(viewmodel); } on main view add html.action action:
[httpget] public partialviewresult getprojectrequests(string code, int page = 1, int pagesize = 10) { var viewmodel = _requestlogic.getrequestsforproject(code, page, pagesize); return partialview("_projectrequestslist", viewmodel); } this action used ajax call tables pagination, hence page , pagesize arguments.
inside partial view render table model data, adding data-href attribute each row so:
@foreach (var item in model) { <tr class='clickable-row' data-href='@url.action("details", new {number = item.requestno})'> <td>.... } this render data-href attribute so:

however after make successful ajax call , html partial replaced. attribute values doesn't resolve in same way.
it ends this: 
any idea why happening?
i bind double click attribute row class .clickable-row makes use of data-href attribute. hence why need work.
cheers,
thanks @rosdikasmin have solved problem. have added route attribute partial view action used on initial page load , via ajax call. so:
[httpget] [route("project/{code}/")] // <- i've added this. public partialviewresult getprojectrequests(string code, int page = 1, int pagesize = 10) { var viewmodel = _requestlogic.getrequestsforproject(code, page, pagesize); return partialview("_projectrequestslist", viewmodel); } // get: requests/details/5 [route("project/{code}/request/{number}")] public actionresult details(string code, int number) { if (number == 0 || code == null) return new httpstatuscoderesult(httpstatuscode.badrequest); var viewmodel = _requestlogic.getirdetailsviewmodel(code, number); if (viewmodel == null) return httpnotfound(); return view(viewmodel); } this means url.action makes use of existing url when creating action link.
Comments
Post a Comment