2013-09-23 3 views
0

Если onclick to button, я могу показать CustomerPartial без перезагрузки страницы и обратной передачи. Если я нажимаю на кнопку, я отправляю данные на главную/Customer.However мой браузер Ссылка (URL) всегда нижеJavascript Json Redirect To Link

локальный: 49461

Когда я использую JSon пост на главную/Заказчик, как может Я покажу ссылку ниже (url) в ссылке браузера (url)?

локальный: 49461/Главная/Клиент

Я спрашиваю это потому, что браузер Ссылка (URL) всегда локальный: 49461

Я хочу видеть LOCALHOST: 49461/Главная/клиентов

Как изменить/переадресовать браузер Ссылка (url) с помощью Javascript Json?

HTML:

<button type="button" onclick="MyFunction">Go To Customer Page</button> 

Javascript:

function MyFunction() { 
$.ajax({ 
url: "/Home/Customer", 
type: "POST", 
dataType: "json", 
contentType: 'application/json', 
success: function (mydata) { 
$("#MyDiv").html(mydata); 
}, 
error: function() { 
$("#MyDiv").html("Error"); 
} 
}); 
return false; 
} 

Контроллер:

public ActionResult Customer(MyModel model) 
{ 
var stringView = RenderRazorViewToString("CustomerPartial", model); 
return Json(stringView, JsonRequestBehavior.AllowGet); 
} 

CustomerPartial:

<h1>Welcome To Customer Page</h1> 

Для Json:

public string RenderRazorViewToString(string viewName, object model) 
{ 
ViewData.Model = model; 
using (var sw = new StringWriter()) 
{ 
var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName); 
var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw); 
viewResult.View.Render(viewContext, sw); 
viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View); 
return sw.GetStringBuilder().ToString(); 
} 
} 
+0

возможно дубликат [Изменение URL без перезагрузки страницы] (http://stackoverflow.com/questions/3381280/changing-the-url-without-reloading-the-page) – Ritesh

+0

Спасибо Ritesh .. –

ответ

0

Решение:

Я добавил код ниже моей SucceS части внутри кода javascript.

history.pushState('', 'New URL: '+href, href); 
1

Вызов этой функции внутри .success функции в вашем АЯКС заявлении (html5 только):

function processAjaxData(response, urlPath){ 
    document.getElementById("content").innerHTML = response.html; 
    document.title = response.pageTitle; 
    window.history.pushState({"html":response.html,"pageTitle":response.pageTitle},"", urlPath); 
}