public ActionResul All()
{
var items=dbContext.Items;
return View("All",items);
}
에 대한
routes.MapRoute(
"filters",
"All",
new { controller = "Contracts", action = "All" }
);
routes.MapRoute(
"filters1",
"focus",
new { controller = "Contracts", action = "focus" }
);
를 제출 OU이
public ActionResult Edit(int id, yourviewmodel viewmodel,string YourFilter)
{
return RedirectToAction(YourFilter);
}
로 리디렉션 할 수 있으며 Global.asax에 당신은 편집이 같은 경로를 설정할 수 있습니다 All
보기 데이터가있는 눈금이 표시됩니다. 그리드에서 레코드를 선택하고 편집을 클릭하면 편집에 대한 두 번째 작업 방법으로 이동합니다.
여기에서 편집 방법을 호출 할 때 몇 가지 플래그를 전달할 수 있습니다. 당신은 당신의 Focus
당신이
@Html.ActionLink("Edit","Edit","Item",new { @id=item.Id, @from="all"},null)
같은 편집 링크를 빌드 할 때 그래서 내 편집이보기에, "all
"
같은 방법으로 값을 가진 쿼리 문자열 키 "from
을"있을 것이라는 점을 추가 할 수 있습니다 다른 값을 전달할 수 있습니다.
이제 Edit Action 메서드를 사용하여 매개 변수를 읽고 편집 뷰 모델의 속성 값으로 설정합니다. 이 속성을 ViewModel에 추가 할 수 있습니다.
public ActionResult Edit(int id,string from)
{
EditItemViewModel item=GetItem(id);
item.From=from;
return View(item);
}
이보기에는 편집 양식이 있습니다. 양식 게시물에이 값을 사용할 수 있도록 양식 요소 안에 From
의 값을 유지합니다.
@model EditItemViewModel
@using(Html.BeginForm())
{
@Html.HiddenFor(m => m.Id);
@Html.TextBoxFor(m => m.ItemName)
@Html.TextBoxFor(m => m.ItemDesc)
@Html.HiddenFor(m => m.From)
<input type="submit" value="Update" />
}
여기서 사용자가 다시 편집하고 제출할 수 있습니다. HttpPost Edit 액션 메소드에서이를 처리합니다. 보낸 사람 속성 값을 확인하고 저장 후 리디렉션 할 위치를 결정하십시오.
[HttpPost]
public ActionResult Edit(EditItemViewModel model)
{
if(ModelState.IsValid)
{
//Save data
if(model.From=="all")
return RedirectToAction("All");
else
return RedirectToAction("Focus");
}
return View(model);
}
감사합니다. 좋은 해결책입니다. – WISEMAN