如何在View页面给Model实例对象赋值并通过Post传给Action

何小泽 2016-07-12 10:26:49
简单点说
我有一个Model里面有几个变量
public class MessageInfo
{
public string OpenID { get; set; }
public string NickName { get; set; }
public string Message { get; set; }
public string SendTime { get; set; }
public int ActivityID { get; set; }
public int flag { get; set; }
}

然后我在Controller里面添加了两个方法,一个httpget的Index();一个httppost的Index(MessageInfo mes)
Index()方法返回的视图用来输入值,Index(MessageInfo mes)用来将传进来的mes实例进行各种数据库操作
 [HttpGet]
public ActionResult index(int? actID)
{
ViewBag.actID = actID;
return View();
}

[HttpPost]
public ActionResult index(MessageInfo mes)
{
return View(mes);
}


Index的视图代码(添加视图时用Create模板生成的,模板类是MessageInfo)
@model weixintest.Models.MessageInfo

@{
ViewBag.Title = "index";
}

@using (Html.BeginForm())
{
@Html.AntiForgeryToken()

<div class="form-horizontal">
<div>
@Html.ActionLink("返回消息控制台", "Index", "Console")
</div>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.OpenID, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.OpenID, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.OpenID, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
@Html.LabelFor(model => model.Message, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Message, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Message, "", new { @class = "text-danger" })
</div>
</div>

@{ Model.SendTime= DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString() + ":" + DateTime.Now.Second.ToString();}

@{ Model.ActivityID = ViewBag.actID;}

<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="消息上墙" class="btn btn-default" />
</div>
</div>
</div>
}

其中这两句是我想给这个页面的两个参数赋值
@{ Model.SendTime= DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString() + ":" + DateTime.Now.Second.ToString();}
@{ Model.ActivityID = ViewBag.actID;}

但是貌似不对,想问下怎么给他们赋值然后传给控制器一个赋值好的实例mes?
还有,这个图片里面的Model为什么可以打出Model.ActivityID? 到底是什么?
...全文
737 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bidisty 2016-07-14
  • 打赏
  • 举报
回复
2406098群TeamViewer221848625,远程看一下吧。
何小泽 2016-07-13
  • 打赏
  • 举报
回复
引用 6 楼 bidisty 的回复:
return View(mes); mes 转给View页面 mes将转为Model对象使用 View页面要构造一个 { OpenID:"", NickName:"", Message:"", SendTime:DateTime.Now.Hour.ToString(), ActivityID :0, flag:0 } 对象回传。 public ActionResult index(MessageInfo mes) 这里MessageInfo mes就是你回传回来的数据
恩 我也是刚开始学MVC,那我在View页面怎么给ActivityID赋值?其中的OpenID,Message这些都是靠输入来赋值,代码都是系统自己生成的,ActivityID和SendTime两个我想直接自己赋值,不用输入,就把系统自动生成的有关ActivityID、SendTime的代码删掉了,请问我怎么给ActivityID和SendTime赋值?你说的构造那个我看的不是很懂,可以告诉我具体怎么写赋值语句或者构造函数什么的吗?谢谢~~~
bidisty 2016-07-13
  • 打赏
  • 举报
回复
return View(mes); mes 转给View页面 mes将转为Model对象使用 View页面要构造一个 { OpenID:"", NickName:"", Message:"", SendTime:DateTime.Now.Hour.ToString(), ActivityID :0, flag:0 } 对象回传。 public ActionResult index(MessageInfo mes) 这里MessageInfo mes就是你回传回来的数据
bidisty 2016-07-13
  • 打赏
  • 举报
回复
MVC和WEBFORM不同,你对Model.ActivityID传值,是不会传回的,你要自己POST数据回来。 这是MVC的基础,好好学下基础。
何小泽 2016-07-13
  • 打赏
  • 举报
回复
引用 2 楼 bidisty 的回复:
[HttpPost]
public ActionResult index(MessageInfo mes)
{
return View(mes);
}

此控制器传了一个Model对象,所以你可以在前台调用。
谢谢你的回复~我在View页面给Model.ActivityID赋值是相当于在给mes这个对象的ActivityID赋值吗?为什么运行之后这两句代码显示出错,说未将对象引用设置到对象的实例。我在View页面会生成一个mes实例传给Index(MessageInfo mes),那在View我该怎么才能对mes.ActivityID赋值然后将mes对象传给Controller呢?
insus 2016-07-13
  • 打赏
  • 举报
回复
看看这个是你需要的吗? http://www.cnblogs.com/insus/p/5663370.html
bidisty 2016-07-13
  • 打赏
  • 举报
回复
[HttpPost] public ActionResult index(MessageInfo mes) { return View(mes); } 此控制器传了一个Model对象,所以你可以在前台调用。
bidisty 2016-07-13
  • 打赏
  • 举报
回复
post回一个MessageInfo结构的数据就行了。 JSON { OpenID:"", NickName:"", Message:"", SendTime:"", ActivityID :0, flag:0 }

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧