Я пытаюсь использовать json для параметров глобализации моей веб-страницы .. id хотел бы изменить ярлыки моей формы, просто используя небольшое dropdownbox и без обновления всей страницы и более интересной части, я получил более двух форм на мой взгляд.Как изменить ярлыки формы с помощью json и razor snytax в .Net MVC3
до сих пор я сделал это:
Мои 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>
}
Нет им на самом деле не использовать этот метод IM освежает весь страницы каждый раз, чтобы изменить язык моих лейблов, но какой-то мой друг сказал мне, что это можно сделать wi thout освежающий, и первое, что пришло мне в голову, было Json .. Я не знаю, возможно ли это, возможно, просто. Любые другие идеи приветствуются.
Я думаю, что заголовок немного запутанный, и, поскольку моя проблема здесь, мы понимаем, поэтому, если кто-нибудь может найти лучший заголовок, попробуйте исправить его.
im не совсем уверен, должен ли я использовать json, это была просто идея. Im ** только **, пытаясь найти способ изменить эти ярлыки, не обновляя страницу. Тем не менее, это может потренироваться, но это будет путать, когда вы будете иметь дело с более чем 40 или более ярлыками. Все еще любила идею, пытающуюся сразу же. Спасибо –
Json - лучший способ узнать, не хотите ли вы обновить страницу. Удачи! –
это не работает, я должен найти способ изменить мой ViewData на Json-данные, тогда у этого может быть шанс. –