我想做什么:
我想以这种方式在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正在进行,我该如何解决?
答案 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在视图中使用