我观看了这个https://www.youtube.com/watch?v=oGeAYd3idBc,我能够创建一个多语言应用程序,但是我需要帮助。我正在尝试创建一个包含法语和英语文本的下拉框,而不是我现在看到的两个列表项链接。有谁知道如何做到这一点?这是我的控制器
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Threading;
using System.Web;
using System.Web.Mvc;
namespace MultiLanguage.Controllers
{
public class LanguageController : Controller
{
// GET: Language
public ActionResult Index()
{
return View();
}
public ActionResult Change(String LanguageAbbrevation)
{
if(LanguageAbbrevation !=null)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(LanguageAbbrevation);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(LanguageAbbrevation);
}
HttpCookie cookie = new HttpCookie("Language");
cookie.Value = LanguageAbbrevation;
Response.Cookies.Add(cookie);
return View("Index");
}
这是我的观点
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<ul>
<li>@Html.ActionLink("English","Change","Language",new {LanguageAbbrevation = "en"}, null)</li>
<li>@Html.ActionLink("French", "Change", "Language", new {LanguageAbbrevation = "fr" }, null)</li>
<li>@DateTime.Now.ToString()</li>
</ul>
这是控制器和模型:
public class LanguageModel
{
public List<SelectListItem> LanguageList { get; set; }
public string LanguageAbbrevation { get; set; }
public static List<SelectListItem> GetList()
{
List<SelectListItem> list = new List<SelectListItem>
{
new SelectListItem { Text = "English", Value = "en" },
new SelectListItem { Text = "French", Value = "fr" },
};
return list;
}
}
public class HomeController : Controller
{
public ActionResult AAIndex()
{
LanguageModel securityQuestionModel = new LanguageModel();
securityQuestionModel.LanguageList = LanguageModel.GetList();
return View("AAIndex", securityQuestionModel);
}
[HttpPost]
public ActionResult Change(String LanguageAbbrevation)
{
if (LanguageAbbrevation != null)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(LanguageAbbrevation);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(LanguageAbbrevation);
}
HttpCookie cookie = new HttpCookie("Language");
cookie.Value = LanguageAbbrevation;
Response.Cookies.Add(cookie);
return View("AAIndex");
}
这是视图:
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@model Testy2.Controllers.LanguageModel
@using (Html.BeginForm("Change", "Home"))
{
<ul>
<li>@Html.ActionLink("English", "Change", "Home", new { LanguageAbbrevation = "en" }, null)</li>
<li>@Html.ActionLink("French", "Change", "Home", new { LanguageAbbrevation = "fr" }, null)</li>
<li>@DateTime.Now.ToString()</li>
</ul>
<div class="form-group">
<label>Language Dropdown</label>
@Html.DropDownListFor(m => m.LanguageAbbrevation, new SelectList(Model.LanguageList, "Value", "Text",
"English"),
new { @class = "form-control", onchange = "this.form.submit();" })
</div>
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句