我实施了两项行动:
它在URL中使用消费者ID呈现地址视图的第一个操作:
这是网址http://localhost:90/Consumer/Address?id=18755
[HttpGet]
public ActionResult Address(int id)
{
return View();
}
它发布地址表格的第二个动作:
[HttpPost]
public ActionResult Address(FormCollection value)
{
int id = Convert.ToInt32(Request["id"]);
// Some code ...
return View();
}
当我解除保存操作时,我发现ID为null,我想从Get操作中检索conusmer ID?
答案 0 :(得分:0)
我想从Get操作中检索conusmer ID?
您无法从GET操作中检索它,因为您现在正在执行POST操作。因此,如果您希望能够检索它,则必须发布此参数。
因此,例如,如果我们假设您的GET操作呈现了包含将用于POST的<form>
的视图,则可以将id作为隐藏字段包含在此表单中。这样,当提交表单时,它将被发送到第二个操作:
@using (Html.BeginForm())
{
@Html.Hidden("id", Request["id"])
... some other input fields
<button type="submit">OK</button>
}
同样在您的POST操作中,而不是进行一些手动类型转换,只需使用默认的模型绑定器为您执行此操作。定义视图模型:
public class MyViewModel
{
public int Id { get; set; }
... some other properties
}
然后让你的POST操作将此视图模型作为操作参数:
[HttpPost]
public ActionResult Address(MyViewModel model)
{
int id = model.Id;
// Some code ...
return View();
}