MVC4实现论坛回复功能提交回复不成功,各位大神帮忙看看哈,研究了好长时间不知道帖子id怎么获取

猎隼1994 2015-06-07 11:16:46
实现的思路是 通过首页获取到所有帖子的标题和id信息
点击帖子链接通过id找到帖子具体信息和回复信息,列表列出
在下面有一个回复框,填写信息提交
下面是代码
首页获取帖子信息,通过href传值

@model JustStudent.Models.PostModel
@{
Layout = null;
ViewBag.Title = "Index";
}
<div id="post">
@{
for (int i = 0; i < Model.listpost.Count; i++)
{
<a href="/Public/Detail?forumid=@Model.listpost[i].forumid">@Model.listpost[i].title</a>
}
}
</div>



这个是详细页面,提交的信息交个PublicController的Detail处理
@model JustStudent.Models.PostModel
@{
Layout = null;
ViewBag.Title = "Detail";
}
@{
var detail = @Model.detail;
var listreply = @Model.listreply;
<h1>@detail.title</h1><br />
<h1>@detail.content</h1><br />
<h1>@detail.postertime</h1><br />
for (int i = 0; i < listreply.Count; i++)
{
<h1>@listreply[i].content</h1>
<h1>@listreply[i].replytime</h1>
}
<form action="/Public/Detail" method="post">
<input type="text" name="content"/>
<input type="submit" value="回复"/>
</form>
}




PublicController.cs

public ActionResult Detail(Int64 forumid)
{
// Int64 forumid = Int64.Parse(Request["forumid"].ToString());
Post p = DAL.PostDAL.getPostDetail(forumid);
List<Reply> listReply = DAL.PostDAL.getRelpyList(forumid);
return View(new PostModel { detail=p,listreply=listReply});
}
[HttpPost]
public ActionResult Detail(Reply reply)
{
Int64 forumid = Int64.Parse(Request["forumid"].ToString()); //通过回复找不到这个forumid,这个理解,可是应该怎么做呢
reply.forumid=forumid;
reply.replier = 1;
reply.replytime = System.DateTime.Now.ToLocalTime();
int result = DAL.PostDAL.insertReply(reply);
if (result == 1)
{
return Content("回复成功");
}
else
{
return Content("回复失败");
}
}


不知道用post怎么将连接中的forumid值传给 [HttpPost]中的那个方法
...全文
154 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
moonwrite 2015-06-08
  • 打赏
  • 举报
回复
<form action="/Public/Detail" method="post">//所有要提交给后台的东西要放到form表单里面!!! <input type="text" name="content"/> <input type="hidden" name="forumid"/> <input type="submit" value="回复"/> </form> 另外 用foeach 代替 for Request["forumid"] 本身就是string了 不要tostring @{//没有必要套多一个@{} for (int i = 0; i < Model.listpost.Count; i++) { <a href="/Public/Detail?forumid=@Model.listpost[i].forumid">@Model.listpost[i].title</a> } }
猎隼1994 2015-06-08
  • 打赏
  • 举报
回复
哈哈哈哈,我知道了啊,多谢多谢,在<input hidden>中放入value为forumid的值就行了啊,哈哈哈哈哈,多谢多谢
猎隼1994 2015-06-08
  • 打赏
  • 举报
回复
引用 1 楼 moonwrite 的回复:
<form action="/Public/Detail" method="post">//所有要提交给后台的东西要放到form表单里面!!! <input type="text" name="content"/> <input type="hidden" name="forumid"/> <input type="submit" value="回复"/> </form> 另外 用foeach 代替 for Request["forumid"] 本身就是string了 不要tostring @{//没有必要套多一个@{} for (int i = 0; i < Model.listpost.Count; i++) { <a href="/Public/Detail?forumid=@Model.listpost[i].forumid">@Model.listpost[i].title</a> } }
这样还是实现不了,在Detail页面只有链接中存在forumid,用hidden还是没办法获取到forumid时怎么回事呢

62,046

社区成员

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

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

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

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