ASP.NET MVC - 在create视图中发送int并在隐藏字段中捕获它

时间:2016-05-07 20:02:45

标签: asp.net asp.net-mvc

我有2个表:tblClient和tblActivity。

tblClient的主键是一个名为clientID的int。

tblActivity具有相同性质的外键(int clientID)

我要做的是为tblActivity Record创建一个Create View, 它捕获当前正在查看其活动列表并在表单中输入的客户的clientID。

我已经有了活动列表视图。

我一直在理解如何通过控制器中的Get方法为我的视图发送int来解决问题,以及如何在我的视图中将@Html.hiddenFor设置为捕获它并将其发送回Post方法。

1 个答案:

答案 0 :(得分:0)

为此视图创建视图模型

public class CreateActivity
{
  public int ClientId { set;get;}
  public string Title { set;get;}
}

现在在您的创建视图中,接受URL中的客户端ID,创建CreateActivity视图模型的对象,设置ClientId属性值并将其发送到视图。

public ActionResult Create(int id)
{
  var vm = new CreateActivity { ClientId = id };
  return View(vm);
}

现在在你看来

@model CreateActivity
@using(Html.BeginForm())
{
  @Html.TextBoxFor(s=>s.Title)
  @Html.HiddenFor(s=>s.ClientId)
  <input type="submit" />
}

由于ClientId存储在隐藏表单字段中,因此当您提交表单时,它将可用。

[HttpPost]
public ActionResult Create(CreateActivity model)
{
  // check model.ClientId 
  // to do  : Return something
}