【问题标题】:Mvc WebApi Querystring to a AddPost methodMvc WebApi Querystring 到 AddPost 方法
【发布时间】:2015-01-12 10:41:55
【问题描述】:

我正在尝试获取浏览器中的查询字符串, /UserHome/UserProfile?username=dangercoder 示例。我在 WebApi 控制器中工作

我想从以下网址获取“dangercoder”,这样我就可以在我的 Web Api 中的 AddPost 方法中使用 dangercoder 用户名

到目前为止我在该方法中所做的事情(接收者 ID 可以被硬编码,但我当然希望它是危险编码器用户名转换为 ID。

  [System.Web.Http.HttpPost]
  public IHttpActionResult AddPost(Post post)
  {
       if (!ModelState.IsValid)
       {
           return BadRequest(ModelState);
       }            
       var user = User.Identity.Name;
       post.SenderID = UserRepository.GetUserId(user);
       // QueryString that returns username in the parameter below.
       post.RecieverID = UserRepository.GetUserId();
       PostRepository.AddNewPost(post);
       return CreatedAtRoute("DefaultApi", new { id = post.ID }, post);
   }

【问题讨论】:

    标签: c# model-view-controller controller query-string asp.net-apicontroller


    【解决方案1】:

    据我所知,UserProfile 视图包含带有 Post 字段的 HTML 表单。

    您可以使用用户 ID 在表单中创建隐藏字段SenderId

    【讨论】:

    • 我正在使用一个名为 PostView fyi 的局部视图
    • 此视图有Post 类型的模型吗?只需在 UserProfile 操作中将所需值分配给 Model.SenderId
    • 这个视图模型确实属于 Post 类型。
    • 您是否包含这样的部分视图:@Html.Partial("PostView", new Post())?您可以使用@Html.Partial("PostView", new Post { SenderId = UserId }),然后在PostView 中使用@Html.HiddenFor(m => m.SenderId)
    猜你喜欢
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 2012-05-13
    • 2017-04-14
    • 2012-08-28
    相关资源
    最近更新 更多