使用ASP.NET MVC查询字符串填写表单
我想用Id填写一张表格,我用这种方式创建了url 本地主机:1613/患者/索引/1 其中as 1是Id。我想用Id为1的患者的数据填写我的表格。 但控制器中未调用下面的函数使用ASP.NET MVC查询字符串填写表单,asp.net,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,razor,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,Razor,我想用Id填写一张表格,我用这种方式创建了url 本地主机:1613/患者/索引/1 其中as 1是Id。我想用Id为1的患者的数据填写我的表格。 但控制器中未调用下面的函数 public ActionResult Index(int id) { Patient p = new CEntities().Patients.Find(id); return View(p); } 相反,我正陷入困境 public ActionResult Index() { retu
public ActionResult Index(int id)
{
Patient p = new CEntities().Patients.Find(id);
return View(p);
}
相反,我正陷入困境
public ActionResult Index()
{
return View();
}
我是ASP.NETMVC的新手,我不知道如何用其他方法填写表单,我找到了一种方法,但它在查询字符串中显示了我的整个对象,这是不安全的。上述解决方案不起作用
请给我推荐一个好的解决方案。据我所知,在ASP.NET-MVC中无法真正重载操作方法,因此只能有一个
索引
操作方法(没有任何附加注释)。当然,您可以定义几个同名的方法,但是您可能希望在action方法上方添加[HttpPost]
(或其他HTTP方法)注释,以便在提交表单后使用它
将参数设置为可选可能会有所帮助:
public ActionResult Index(int? id){
if(id.HasValue()){
Patient p = new CEntities().Patients.Find(id);
return View(p);
}
return View();
}
请看一看:
另一个建议:尝试使用脚手架,看看模板是如何为您实现的:
1.右键单击控制器文件夹
2.添加->新控制器
public ActionResult Index(int id)
{
Patient p = new CEntities().Patients.Find(id);
return View(p);
}
3.具有实体框架读/写操作的控制器(据我所知,从顶部算起为第三个)
4.选择模型类
5.选择db上下文(维护与数据库连接的类)
6.好的
它将生成具有视图的控制器,非常有趣
local-host:1613/Patient/Index/1
此路径应符合以下操作方法:
public ActionResult Index(int id)
请检查RouteConfig.cs文件并确保正确设置了默认路由:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
尝试注释您的其他索引操作方法“//public ActionResult Index()”,并查看当尝试转到本地主机:1613/Patient/Index/1时会发生什么情况用HttpGet
装饰索引(int-id)
操作。