Web ページのグローバリゼーション オプションに json を使用しようとしています。小さなドロップダウン ボックスを使用するだけで、ページ全体を更新せずにフォームのラベルを変更したいのですが、さらに興味深いのは、ビューに 2 つ以上のフォームがあることです。 .
これまでのところ、私はこれを行ってきました:
私のJson:
public JsonResult Globalx(String incoming)
{
System.Globalization.CultureInfo Cult = new System.Globalization.CultureInfo(incoming, true);
System.Threading.Thread.CurrentThread.CurrentCulture = Cult;
System.Threading.Thread.CurrentThread.CurrentUICulture = Cult;
Resources.Global.Culture = System.Threading.Thread.CurrentThread.CurrentCulture;
Global.ResourceManager.GetResourceSet(Cult, false, true);
ViewData["Name"] = Global.Name;
ViewData["Surname"] = Global.Surname;
ViewData["Birth"] = Global.Birth;
String lnginfo = Resources.Global.Culture.TwoLetterISOLanguageName.ToString();
ViewData["Languages"] = new SelectList(myList, "Value", "Text", lnginfo);
return Json(ViewData, JsonRequestBehavior.AllowGet);
}
私の見解:
@model MyCustomers.Models.Customers
@{
ViewBag.Title = ViewData["NewCustomer"];
Layout = "~/Views/Shared/_Layout.cshtml";
}
<script type="text/javascript" language="javascript">
$(document).ready(function () {
function changeLang() {
var lang = $("#LanguageBox").val();
$.getJSON('@Url.Content("~/Home/People/")', { incoming: lang }, function (data) {
// what should i do here to get my label's language changed?
})
}
}
</script>
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data", id = "LanguageForm" }))
{
<fieldset>
<legend>@ViewData["LanguagesTitle"]</legend>
@Html.DropDownListFor(x => x.SelectedLanguage, (SelectList)ViewData["Languages"], new { onchange = "changeLang()", id = "LanguageBox" })
</fieldset>
}
@using (Html.BeginForm("PeopleForm", "Home", FormMethod.Post, new { enctype = "multipart/form-data", id = "PeopleForm" }))
{
<fieldset>
<legend>@ViewData["SalesContract"]</legend>
<div>
<div class="Name">
@Html.Label(ViewData["Name"].ToString()) <!--> HERE </!-->
@Html.EditorFor(x => x.People.Name)
</div>
<div class="Surname">
@Html.Label(ViewData["Surname"].ToString()) <!--> HERE </!-->
@Html.EditorFor(x => x.People.Surname)
</div>
<div class="Birth">
@Html.Label(ViewData["Birth"].ToString()) <!--> AND HERE </!-->
@Html.EditorFor(x => x.People.Birth)
</div>
</div>
</fieldset>
}
いいえ、私は実際にこの方法を使用していませんが、ラベルの言語を変更するたびにページ全体を更新していますが、私の友人の何人かは、更新せずにそれを行うことができると言い、最初に頭に浮かんだのはJsonでした..わかりませんそれが可能かどうかは、試しているだけです。他のアイデアは大歓迎です。
タイトルは少しわかりにくいと思います。ここでの私の問題は理解されていると思いますので、誰かがより良いタイトルを見つけたら、修正してみてください。