首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >c#剃刀操作结果参数

c#剃刀操作结果参数
EN

Stack Overflow用户
提问于 2011-06-03 05:59:32
回答 2查看 3.8K关注 0票数 0

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

代码语言:javascript
运行
复制
  // Get: /User/23
  public ActionResult(int? id) { 
       return View("User", id);
  }

所以基本上,这个ActionResult获取url中的参数并将其发送到某个地方。但是在哪里呢?

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

代码语言:javascript
运行
复制
// 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>
}
EN

Stack Overflow用户

回答已采纳

发布于 2011-06-03 07:37:10

return View调用基类Controller中的帮助器方法。

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

因此,如果您希望传递一个用户列表,您可以这样做:

代码语言:javascript
运行
复制
public ActionResult Users()
{
   var users = _repository.FindAllUsers();
   return View(users);
}

请注意,我是如何省略视图名称的,因此默认约定是根据操作名称查找视图,在本例中为Users.cshtml。总是尝试使用约定而不是配置--这就是MVC的伟大之处。

代码语言:javascript
运行
复制
@model IEnumerable<YourApp.Models.User>
@Html.DisplayForModel()

Shared\DisplayTemplates\User.cshtml

代码语言:javascript
运行
复制
@Html.LabelFor(model => model.Name)
@Html.DisplayFor(model => model.Name)
@Html.LabelFor(model => model.LastName)
@Html.DisplayFor(model => model.LastName)

请注意,我没有使用foreach循环-我再次使用了自定义显示模板-约定优于配置。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6220878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档