C# 如何通过post请求传递值以隐藏URL?
我想在单击编辑按钮时隐藏url。C# 如何通过post请求传递值以隐藏URL?,c#,asp.net,asp.net-mvc,post,http-post,C#,Asp.net,Asp.net Mvc,Post,Http Post,我想在单击编辑按钮时隐藏url。 我试图使用@Html.ActionLink来实现它,但我得到了如下结果 http://localhost:57098/Home/Edit/1我需要这个结果:http://localhost:57098/Home/Edit 我也尝试通过输入,但当我点击输入按钮时,我没有任何效果。 请帮我找出错误并正确地提出post请求。 我的控制器 [Authorize] public ActionResult Index()
我试图使用
@Html.ActionLink
来实现它,但我得到了如下结果
http://localhost:57098/Home/Edit/1
我需要这个结果:http://localhost:57098/Home/Edit
我也尝试通过
输入
,但当我点击输入按钮时,我没有任何效果。请帮我找出错误并正确地提出post请求。
我的控制器
[Authorize]
public ActionResult Index()
{
IEnumerable<LPU> lpuv = kz.LPUs.Where(x => x.Code == HttpContext.User.Identity.Name).ToList();
return View(lpuv);
}
[Authorize]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Index(LPU lpusi)
{
return RedirectToAction("Edit", "Home" , new { ogrn = lpusi.M_NAMES });
}
[Authorize]
[HttpGet]
public ActionResult Edit(string ogrn)
{
var lpue = kz.LPUs.Where(x => x.C_OGRN.Contains(ogrn)).FirstOrDefault();
return View(lpue);
}
[授权]
公共行动结果索引()
{
IEnumerable lpuv=kz.LPUs.Where(x=>x.Code==HttpContext.User.Identity.Name).ToList();
返回视图(lpuv);
}
[授权]
[HttpPost]
[ValidateAntiForgeryToken]
公共行动结果索引(LPU lpusi)
{
返回RedirectToAction(“编辑”、“主页”,新的{ogrn=lpusi.M_NAMES});
}
[授权]
[HttpGet]
公共操作结果编辑(字符串ogrn)
{
var lpue=kz.LPUs.Where(x=>x.C_OGRN.Contains(OGRN)).FirstOrDefault();
返回视图(lpue);
}
我的看法是:
@model IEnumerable<LpuList.Models.LPU>
...
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.M_NAMES)
</th>
<th>
@Html.DisplayNameFor(model => model.FAM_GV)
</th>
<th>
@Html.DisplayNameFor(model => model.TEL)
</th>
<th>
@Html.DisplayNameFor(model => model.FAX)
</th>
<th>
@Html.DisplayNameFor(model => model.E_MAIL)
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.M_NAMES)
</td>
<td>
@Html.DisplayFor(modelItem => item.FAM_GV)
</td>
<td>
@Html.DisplayFor(modelItem => item.TEL)
</td>
<td>
@Html.DisplayFor(modelItem => item.FAX)
</td>
<td>
@Html.DisplayFor(modelItem => item.E_MAIL)
</td>
<td>
<input type="submit" value="Submit" formaction=@Url.Action("Index") formmethod="post">
@Html.ActionLink("Изменить", "Edit", new { ogrn = item.M_NAMES }, new { @class = "btn btn-primary btn-large" })
</td>
</tr>
}
</table>
...
@model IEnumerable
...
@DisplayNameFor(model=>model.M_名称)
@DisplayNameFor(model=>model.FAM\u GV)
@DisplayNameFor(model=>model.TEL)
@DisplayNameFor(model=>model.FAX)
@DisplayNameFor(model=>model.E_-MAIL)
@foreach(模型中的var项目)
{
@DisplayFor(modeleItem=>item.M_名称)
@DisplayFor(modeleItem=>item.FAM\u GV)
@DisplayFor(modeleItem=>item.TEL)
@DisplayFor(modelItem=>item.FAX)
@DisplayFor(modeleItem=>item.E\u-MAIL)
@ActionLink(“编辑”,新的{ogrn=item.M_NAMES},新的{@class=“btn btn primary btn large”})
}
...
请参考此链接:---@Mr.Roshan我的问题不是关于路线。我想发出post请求,但它不起作用,我不知道为什么。你想隐藏url??或者你的Post方法没有得到调用,你看起来没有表单标签,这就是为什么你的提交不起作用。提交按钮只会在有表单要提交时提交表单!但是,为什么需要在URL中隐藏ID?这只是一个ID,不是敏感数据,用户可能已经知道他们点击了什么…ADyson是对的。你的问题不是从URL中隐藏ID,而是在应用程序中添加一些后端安全性。如果UserA只能看到ID1,那么您需要在数据库中存储一些表示ID1的内容。这样,如果UserA试图查看任何他们不应该查看的内容,您可以在控制器(请求)中捕获它,并在他们看到任何他们不应该查看的内容之前将其重定向到相关的“失败”页面。在编辑URL中具有ID不是需要解决的问题。