0

HomeControllerという名前の単純なコントローラーと、次のようないくつかのアクションがありました

public ActionResult Index()
{
    return View();
}

私のインデックスページは

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

<asp:Content ID="indexTitle" ContentPlaceHolderID="TitleContent" runat="server">
Test
</asp:Content>

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
Hello World,<br/>
Test
</asp:Content>

返された結果の単語を置き換えたいのですが、インデックスページが「Hello World」を返した場合、それを「Hola Mundo」またはこのようなものに変更したい..

プロジェクトをグローバル化するにはどうすればよいですか? 私はhttp://afana.me/post/aspnet-mvc-internationalization.aspxを見ましたが、すべてのカルチャのビューを作成するのは好きではありません..インデックスビューを1つだけ作成し、ページを選択したカルチャに変換したい.

4

3 に答える 3

1

Model-View-Controller の「モデル」を忘れています。

基本的に、設定したい変数を持つ単純な Model クラスを設定します。それらをコントローラーのどこかに設定すると、ビューにそれらの変数が表示されます。

従うべき非常に単純な例...

public class MyModel
{
   public string sayingOne { get; set; }
   public string sayingTwo { get; set; }
}

あなたのコントローラーで

public ActionResult Index()
{
    MyModel model = new MyModel();
    if (someCondition)
    {
        model.sayingOne = "Hello";
        model.sayingTwo = "Mundo";
    }
    return View(model);
}

次に、あなたのビューで

@Model MyModel
...    
<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
@MyModel.sayingOne @MyModel.sayingTwo
</asp:Content>
于 2013-05-10T22:50:31.350 に答える
1

この記事から始めましょう。言語ごとにビューを作成する必要があるという著者の前提 (DRY の違反についての話) には同意しませんが、グローバリゼーションのその他の側面は正しい方向を示しているはずです。

あなたの質問には多くのことがあり、SOの回答のコンテキストで誰かが簡単に伝えることができるものではありません. MVC とグローバリゼーションに関するブログやチュートリアルを検索します。

于 2013-05-10T23:07:32.317 に答える