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