如何在MVC应用程序上运行方法?

时间:2016-06-04 16:47:48

标签: c# asp.net-mvc

我想做什么:

我想以这种方式在MVC应用程序上运行一个方法:

public static void test()
    {
        ModelVariables hey = new ModelVariables();

        hey.test = "hello world";
    }

在这里我基本上存储"你好世界"一个全局变量,简单吧?

 public class ModelVariables
{

    public string test { get; set; }
}

现在我的公开字符串'测试'有字符串" hello world",到目前为止还不错?

然后我想通过以我的html格式打印它来验证这是否有效:

@{


ModelVariables testee = new ModelVariables();
ViewBag.Title = "Index";
}

 @using (Html.BeginForm())
{
 <div>@testee.test</div>

}

@ testee.test =&#34; hello world&#34;,或者似乎......当我运行应用程序时,什么都没有出现! wtf正在进行,我该如何解决?

3 个答案:

答案 0 :(得分:1)

如果要将值传递给MVC中的视图,则应将其放在ViewModel中。

如果将此值放在ViewModel中,则流程应如下所示:

ViewModel / Model:

public class TestViewModel
{
   public string testee { get; set; }
}

查看:

@model testproject.Models.ViewModels.TestViewModel
@{
    ViewBag.Title = "Index";
}

@using (Html.BeginForm())
{
    <div>@Html.DisplayFor(m=>m.testee)</div>
}

<强> FooController的:

public ActionResult Index()
{
    var model = new TestViewModel();
    model.testee = "hello world!";

    return View(model);
}

答案 1 :(得分:0)

这些不是全局变量。 def FoundmovieNamesInQuery(userQueryPart,nameOfMovie): for userQueryPart in userQuery: for nameOfMovie in movieNames: if userQueryPart == nameOfMovie: return True return False print("welcome") userQuery = input("use our quick search to find cinema times for films shwing today: ").lower().split() print(userQuery) with open("movies.txt")as file: lines = file.readlines() solutionFound = False for line in lines: item = line.split(":") movieNames = item[0].split() movieTimes = item[1] if FoundmovieNamesInQuery(userQuery, movieNames): print(movieTimes) solutionFound = True if solutionFound == False: print("movie not found.\n please call us on 0800 020 030") ModelVariables hey是两个不同的实例,因此没有显示任何内容。您希望在显示之前填充数据

ModelVariables testee

答案 2 :(得分:0)

你在哪里初始化@ testee.test的价值?你从来没有调用静态方法test()来初始化变量。

@{

ModelVariables testee = new ModelVariables(){test = "Hello World"}; 
ViewBag.Title = "Index";
}

 @using (Html.BeginForm())
{
 <div>@testee.test</div>

}

这应该有效,但作为一种好的做法,您应该始终在操作方法中声明变量,并使用ViewBag在视图中使用