0

ボタンをクリックすると、ページのリロードやポストバックなしで CustomerPartial を表示できます。ボタンをクリックすると、データを Home/Customer に投稿します。ただし、ブラウザ リンク (URL) は常に下にあります。

ローカルホスト:49461

Home/Customer への json 投稿を使用する場合、ブラウザーのリンク (url) に以下のリンク (url) を表示するにはどうすればよいですか?

ローカルホスト:49461/ホーム/顧客

Browser Link(url) は常にlocalhost:49461であるため、私はこれを求めています

localhost:49461/Home/Customerを見たい

Javascript Json を使用してブラウザのリンク (url) を変更/リダイレクトする方法は?

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);
}

顧客の一部:

<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();
}
}
4

2 に答える 2

1

ajax ステートメントの .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);
 }
于 2013-09-23T11:40:20.763 に答える