首页 新闻 会员 周边

关于MVC controller层与View层交互的问题

0
[已解决问题] 解决于 2017-08-25 00:20

我在自己练习开发的程序代码中,controller层读取View层数据的代码如下:

View层代码段:

@using (Html.BeginForm("InsertReply", "Message"))
    {  
        
    <legend>ReplyMessage</legend>
     <table>
         <tr>
             <td>
                 Content:@Html.TextBox("Content")
                 @Html.Hidden("Id", Model.messageId)                 
             </td>
             <td>
                 <input type="submit" value="Reply" />  
             </td>
         </tr>
     </table>
    }
view层

Controller层代码段:

[HttpPost]
        public ActionResult InsertReply()
        {
            int messageid = int.Parse(Request.Form["Id"].ToString());
            var message = db.Messages.Where(p => p.Id == messageid).FirstOrDefault();
            var user = db.Users.Where(p => p.Email == User.Identity.Name).FirstOrDefault();
            
            Reply re = new Reply(){
                CreatOn = DateTime.Now,
                User = user,
                Message = message,
                Content = Request.Form["Content"],
                Ip = Request.UserHostAddress.ToString()
            };
            db.Replys.Add(re);
            db.SaveChanges();
            return RedirectToAction("ReplyMessage", "Message", new { Id = messageid});
        }

想请教一下,除了以上这种方法获取数据的方法外,有什么更好的,或者其他的方法可以用?请各位多多指教

僧正的主页 僧正 | 初学一级 | 园豆:193
提问于:2017-08-24 11:18
< >
分享
最佳答案
0

只有前后端交互.

没有view和controller交互的说法.

奖励园豆:5
吴瑞祥 | 高人七级 |园豆:29449 | 2017-08-24 11:46

不好意思,学习的知识还不够牢固,所以可能说法上有错,但是不知道前后端交互除了我所用的方法外,是否还有别的方法可以用呢?请赐教。

僧正 | 园豆:193 (初学一级) | 2017-08-24 12:03

@MingWei496: http请求中能携带参数的地方有:querystring,body head

这3个地方

吴瑞祥 | 园豆:29449 (高人七级) | 2017-08-24 12:52
其他回答(1)
0

1. 可以去view 中model 的数据

2.mvc 可以自动序列化 不用去取

这么写就ok 了 public ActionResult InsertReply(string id)

灵行寻燕 | 园豆:226 (菜鸟二级) | 2017-08-24 13:36

谢谢您给我的建议,我回头改一改。

支持(0) 反对(0) 僧正 | 园豆:193 (初学一级) | 2017-08-25 00:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册