我有一个名为( Term1score )的控制器,在控制器中我有两种不同的操作方法( Index_Test,EditScore )。
现在在我的视图( Index_Test )中我有Html操作链接,它将重定向到(编辑分数)现在我想要的是它会重定向到特定ID(示例if(Index_Test)SubjectId = 1然后它将转到(EditScore)SubjectID = 1 ,)因为您可以在我的Controller中看到它们都针对相同的SubjectID,任何关于如何修复的想法这个?感谢并感谢您的回复..
控制器:
public ActionResult Index_Test(int? id)
{
List<Term1Score> score = db.Term1Scores.Where(x => x.SubjectID == id).ToList();
return View(score);
}
[HttpGet]
public ActionResult EditScore(int? id)
{
List<Term1Score> score = db.Term1Scores.Where(x => x.SubjectID== id).ToList();
return View(score);
}
我试图把它放在Index_Test视图中。 这个One Work但它总是会转到Id 1 - 如何自动更改?
@Html.ActionLink("Edit", "EditScore", "Term1Score", new { id= "1" }, null
我已经尝试了很少但仍然没有。
@Html.ActionLink("Edit", "EditScore", "Term1Score", new { id=@Model.id }, null)
@Html.ActionLink("Edit", "EditScore", "Term1Score", new { testId=testId.id }, null)
@Html.ActionLink("Edit", "EditScore", "Term1Score", new { id= "" }, null)
答案 0 :(得分:0)
编辑:根据评论
我的目标是使用您给出的代码来编辑一个链接 逐个循环,Editscore是一个Multi editable表
在这种情况下,您可以获取第一项并使用SubjectID
@model List<Term1Score>
@{
var id = Model.FirstOrDefault() != null ? Model.First().SubjectId : (int?) null;
}
@Html.ActionLink("Edit", "EditScore", "Home", new { id = id }, null)
另一种选择是创建一个视图模型,该模型有2个属性,一个用于Id,另一个用于Term1Score列表,并用于将数据传输到视图。
您的Index_Test
操作方法正在将Term1Score对象列表传递给视图,因此您需要遍历它们并呈现编辑链接
EditScore
操作方法参数名称为id
。因此,请确保在使用Html.ActionLink帮助程序构建锚标记时,使用id
作为路径值对象键。
所以在Index_Test.cshtml
@model List<Term1Score>
@foreach (var testId in Model)
{
<p>
@Html.ActionLink("Edit", "EditScore", "Home", new { id = testId.Id }, null)
</p>
}
此外,在EditScore
方法中,您可能希望编辑单个记录,目前您将返回与上一个方法相同的集合。您可能希望获得与该ID匹配的单个记录。
[HttpGet]
public ActionResult EditScore(int id)
{
Term1Score score = db.Term1Scores.FirstOrDefault(x => x.Id== id);
if(score==null)
{
return Content(" This item does not exist"); // or a view with the message
}
return View(score);
}
现在,由于您传递的是单个项目,因此请确保您的视图是强类型的
@model Term1Score
<h2>@Model.Id</h2>