我剛開始探索asp mvc和jquery。來自MVC控制器的JQuery Popup
我有一個簡單的窗體,有2個字段,日期和金額。
我想要實現的行爲是,當表單提交時,如果記錄不存在於我的數據庫中,然後添加項目。如果它已經存在,則發出警告並要求用戶確認。如果用戶繼續覆蓋現有記錄。
這裏是我的標記
<% using (Html.BeginForm())
{ %>
<div>
<%:Html.LabelFor(mod => Model.bal.Date) %>
</div>
<div>
<%: Html.TextBoxFor(mod => Model.bal.Date)%>
<%:Html.ValidationMessageFor(mod => Model.bal.Date)%>
</div>
<div>
<%: Html.LabelFor(mod => Model.bal.Amount)%>
</div>
<div>
<%: Html.TextBoxFor(mod => Model.bal.Amount)%>
<%: Html.ValidationMessageFor(mod => Model.bal.Amount)%>
</div>
<p>
<input type="submit" value="Create" />
這裏是我的控制器代碼
[HttpPost]
public ActionResult Index(Balance bal)
{
var dataContext = new DataDataContext();
if (ModelState.IsValid)
{
// Check if exsists
if (dataContext.Balances.ToList().Contains(bal, new BalanceEquality()))
{
//Exsists, Warn then edit
// Add code here to open popup
// if Continue then over write exsisting data in db
}
else
{
//Not exsist, insert
dataContext.Balances.InsertOnSubmit(bal);
dataContext.SubmitChanges();
}
}
compModel myModel = new compModel();
myModel.bal = bal;
myModel.allBalances = dataContext.Balances.OrderBy(ball => ball.Date).ToList();
return View(myModel);
}
我的問題是如何顯示和從我的控制器內得到一個jQuery彈出的結果。
我想到了設置ViewData的集合中的變量,但是這似乎並不像「最佳實踐」給我
感謝
也許在這裏使用一個Ajax形式 - 你不想被提交表單,然後顯示一個確認(客戶端),然後再提交。糟糕的UX IMO。另外,一個記錄又如何「存在」?什麼領域是獨特的? – RPM1984 2010-11-15 06:11:13
你正在尋找一個AJAX解決方案,或者你想提交表單兩次 - 首先提交它檢查唯一性,如果它是唯一的,它繼續並創建記錄,如果不是,那麼它重新顯示錶單與警告消息,如果用戶第二次提交它創建記錄。 – ace 2010-11-15 06:35:48
關於彈出窗口,你可以看看這裏http://mrgsp.md:8080/awesome/popupformdemo – Omu 2010-11-15 18:58:01