3

ビューでアクション以外のメソッドを呼び出したい。それをしてもいいですか?つまり、私のコントローラには文字列を返すメソッドがあります。ビュー (.cshtml) でそのメソッドを呼び出して、ビューに表示したいと考えています。私が確認できたのは、メソッドが ActionResult を返す必要があるということだけでした。しかし、私の場合、文字列だけを返すビューは必要ありません。

4

5 に答える 5

6

これを行うための最良の方法 (および MVC 規則の方法) は、ViewModel. 簡単な例:

モデル

public class MyViewModel {
    public string StringValue { get; set; }
}

コントローラ

public class MyController : Controller 
{
    public ActionResult MyView() 
    {
        var model = new MyViewModel
        {
            StringValue = CallMyMethod()
        }

        return View(model);
    }
}

意見

@model MyViewModel @*(use fully qualified namespace)*@

@Model.StringValue @*<-- this will print it out on the view*@

それが役立つことを願っています!

于 2013-09-19T00:35:58.570 に答える
2

必要に応じてそれを行うことができます。

私はそれを良い習慣とは呼びませんが。

ビューで必要なメソッドを呼び出すことができますが、ビューをできるだけきれいに保ち、必要最小限のロジックを実行するようにしてください。

コントローラーでは、以下のメソッドを使用できます。

public string GetName(string name)
{
   return string.Format("<strong>{0}</strong>", name);
}

そして、あなたの見解では、以下のように使用できます。

@{var c = new Controller();}

@c.GetName("My Name") //some other place in your view
于 2013-09-18T23:24:48.653 に答える