Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c.结果参数_C#_Asp.net Mvc_Razor - Fatal编程技术网

C# c.结果参数

C# c.结果参数,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我是mvc razor的新手,所以请原谅我对这个主题的不熟悉。如果我理解得很好,则是控制器获取url参数,如下所示: // Get: /User/23 public ActionResult(int? id) { return View("User", id); } 所以基本上,这个ActionResult在url中获取参数并将其发送到某个地方。但是在哪里呢 另外,假设我有一个存储库,我在其中返回IQueryable类中的所有用户。如果id不为null,则只获取相关

我是mvc razor的新手,所以请原谅我对这个主题的不熟悉。如果我理解得很好,则是控制器获取url参数,如下所示:

  // Get: /User/23
  public ActionResult(int? id) { 
       return View("User", id);
  }
所以基本上,这个ActionResult在url中获取参数并将其发送到某个地方。但是在哪里呢

另外,假设我有一个存储库,我在其中返回IQueryable类中的所有用户。如果id不为null,则只获取相关结果,如果不为null,则获取整个列表。因此,我想返回一个列表到视图并显示结果。我该怎么做?为了便于理解,我举了以下示例:

// I want to populate this list based on the id in the actionresult
@foreach(var u in MyList) { 
   name: @u.Name <br>
   lastname: @u.LastName <hr>
}

作为第二个参数返回的是传递到视图中的模型。然后,您可以在WebViewPage中继承razor页面,或者更好地使用@model关键字。传入的数据可通过模型变量在页面中使用

返回视图调用基类Controller中的helper方法就是一个很好的例子

它将返回一个ViewResult,参数是传递给视图的模型

因此,如果您想通过用户的列表,您可以这样做:

public ActionResult Users()
{
   var users = _repository.FindAllUsers();
   return View(users);
}
请注意我是如何省略视图名称的,因此默认约定是基于操作名称查找视图,在本例中为Users.cshtml。总是尝试使用约定而不是配置——这就是MVC的伟大之处

@model IEnumerable<YourApp.Models.User>
@Html.DisplayForModel()

请注意,我没有使用foreach循环-我使用的是自定义显示模板,同样-约定优先于配置。

谢谢您的回答!不过我还有一个问题:我如何才能将该变量传递给MyModel.cs?@shookan不确定将该变量传递给MyModel.cswow是什么意思,谢谢!但是,如何将url参数传递给模型?ViewBag.Variable会起作用吗?还是有更好的方法?@shookan-这个URL的目的是什么?这是为了在某个地方生成链接吗?如果是这样,您应该使用Html.ActionLink或自定义Html帮助程序。让我知道您要生成什么类型的URL,我会澄清。@RPM1984好的,首先让我声明我使用此代码只是为了训练我的编码技能,因此,首先,我不想知道安全性。无论如何,我想创建一个可以像sql数据库一样使用的页面。我想从链接列表中选择表名,然后根据我选择的表填充一个动态表。我不能使用webgrid,因为我想在文本框中显示每个单元格,以便轻松编辑、删除或插入新数据。换句话说,我想创建一个基本的数据库接口。我从url传递变量表名。我已经做了类似的事情,但我使用了经典的asp.net控件和c,而不是使用mvc razor:所以基本上,我在尝试学习一些困难的东西,我的意思是,对我来说很困难。但这有多少不同的页面?从我读到的内容来看,第一页将列出所有不同的表作为链接。然后,第二个页面将根据单击的链接显示表数据。是这样吗?如果是这样,应该有两种行动方法。返回表名列表,视图将为每个表创建Html.ActionLink。然后,这些链接将指向第二个操作方法,该方法显示该表中的数据。这有意义吗?
@Html.LabelFor(model => model.Name)
@Html.DisplayFor(model => model.Name)
@Html.LabelFor(model => model.LastName)
@Html.DisplayFor(model => model.LastName)