我有我的創建和編輯視圖共享的部分視圖(用戶控件)。當我在編輯視圖中使用它時,必須包含隱藏字段(Html.HiddenFor
)以防止在我的數據服務中出現「行更改或未找到」錯誤,但是當我在創建視圖中使用它時,必須刪除PK隱藏字段,以防止嘗試插入到標識列時發生錯誤。通過創建和編輯視圖共享的部分視圖中的主鍵問題
在此應用程序中不使用標識列是不可行的,因此,如何根據已調用哪個操作「打開」PK隱藏字段?
郵操作代碼:
[HttpPost]
public ActionResult Edit(JobCardViewData viewData)
{
try
{
jobCardService.Update(viewData.JobCard);
編輯查看摘錄:
<% Html.RenderPartial("JobCardInput", Model); %>
部分摘錄:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Poynting.Installation.Web.ViewData.JobCardViewData>" %>
<% using (Html.BeginForm())
我的問題在這裏,你的第一個建議是JobCardId是int,所以它從不爲空,並且控制器從視圖中返回的值(使用隱藏字段時)爲0,它與jobCard一起服務於服務器。你的第二個看起來不錯,而且我實際上已經完成了,而不需要幫助者。謝謝! – ProfK 2010-07-14 07:11:43
完全同意第一個選項 - int永遠不會爲null,但是在您的控制器中,您可以檢查它是否爲0,然後從發佈的值重新創建一個新的JobCard對象。 – Ahmad 2010-07-14 07:47:28