將視圖分配爲按鈕時,將視圖傳遞給控制器時存在一個問題。如果我在我看來,使用此代碼:MVC 3 - 將兩個參數從視圖傳遞到控制器
@using (Html.BeginForm("Edit", "Shift", new { lineName = item.Line, dateTime=item.Date }))
{
<input type="submit" value="Edit"/>
}
我得到這個字符串作爲結果,因爲符號被替換&
<form action="/Shift/Edit?lineName=Line%203&dateTime=04%2F01%2F2004%2007%3A00%3A00" method="post"> <input type="submit" value="Edit"/>
</form>
不工作所以來解決,我發現我可以使用在Html.Raw
@using (Html.Raw(Url.Action("Edit", "Shift", new { lineName = item.Line, dateTime=item.Date })))
{
<input type="submit" value="Edit"/>
}
但是,這給我的錯誤:
「System.W eb.IHtmlString「:在使用語句中使用的類型必須是隱式轉換爲‘System.IDisposable的’
我的控制器metdhods:(編輯)
//Displays Edit screen for selected Shift
public ViewResult Edit(string lineName, DateTime dateTime)
{
Shift shift = repository.Shifts.FirstOrDefault(s => s.Line == lineName & s.Date == dateTime);
return View(shift);
}
//Save changes to the Shift
[HttpPost]
public ActionResult Edit(Shift shift)
{
// try to save data to database
try
{
if (ModelState.IsValid)
{
repository.SaveShift(shift);
TempData["message"] = string.Format("{0} has been saved", shift.Date);
return RedirectToAction("Index");
}
else
{
//return to shift view if there is something wrong with the data
return View(shift);
}
}
//Catchs conccurency exception and displays collision values next to the textboxes
catch (DbUpdateConcurrencyException ex)
{
return View(shift);
}
}
可否請你支持我這個,我現在花幾天時間在這一個上。
謝謝
不幸的是仍然無法正常工作。 @using帶下劃線,我得到相同的錯誤 – Whistler
而我的控制器看起來與您寫的完全一樣。 – Whistler
我已經更新了代碼,請嘗試這個。仍然有任何錯誤,請讓我知道。 –