我已經使用kendo網格來顯示從控制器收集的電子郵件列表,然後當用戶點擊網格行時,電子郵件正文顯示在劍道編輯器中,我想在編輯器上編輯電子郵件並使用Web服務將電子郵件正文保存回數據庫。但是爲了與服務器端的c#代碼交互,並不是那麼簡單。我們不想要太多的Javascript代碼。當前的代碼就是這樣使用Kendo UI的.NET開發人員的HTML5 ASP .NET MVC
__ _ __的Index.aspx
<%: Html.Kendo().Grid(Model.mailList)
.Name("Grid")
.HtmlAttributes(new { style = "height:auto;font-size: medium;" })
.Columns(columns =>
{
columns.Bound(p => p.MailId).Width(200);
columns.Bound(p => p.From.Value).Width(200).Title("Sender");
columns.Bound(p => p.Subject).Width(200);
//columns.command(commands =>
//{
// commands.destroy();
//});
})
.Pageable()
.Sortable()
.Scrollable()
.Filterable()
.Events(events => events.Change("onChange"))
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
//.Destroy(destroy => destroy.Action("Index","Home"))
.Model(model =>
{
//The unique identifier (primary key) of the model is the ProductID property
model.Id(p => p.MailId);
// Declare a model field and optionally specify its default value (used when a new model instance is created)
model.Field(p => p.Subject).DefaultValue("N/A");
// Declare a model field and make it readonly
model.Field(p => p.Sender).Editable(false);
})
.PageSize(5)
)
.Selectable()
%>
function sendMailToController() {
$.ajax({
url: "/Home/SendMail/",
data: {
emailID: mailID,
emailBody: mailBody
},
cache: false,
type: "GET",
timeout: 10000,
dataType: "json",
success: function (result) {
if (result.Success) {
alert("Operation Completed");
} else {
alert("Operation Failed");
}
}
});
}
__ _ __ _controller代碼
public ActionResult Index()
{
MailModel mailModelobj = new MailModel();
mailModelobj.GetMailList();
return View(mailModelobj);
}
public JsonResult SendMail(Guid emailID, string emailBody)
{
MailModel mailModelObj = new MailModel();
mailModelObj.body = emailBody;
mailModelObj.mailID = emailID;
var Result = mailModelObj.SendMail(mailModelObj);
return Json(new { Success = true, Result }, JsonRequestBehavior.AllowGet);
}
問題是,它不是 爲編輯長篇郵件正文部分工作。我們不喜歡上面的溝通方式。
我們想在Javascript中使用C#域名。
我的問題是:
什麼是劍道UI控件與服務器端進行交互的最佳實踐(得到控制值,並通過控制器設置的值
你能嗎?請用一些小例子來解釋一下,例如提交按鈕,以便將電子郵件正文提交回服務器。
是否可以使用kendo UI進行測試驅動開發?如何或示例會非常有幫助。
在此先感謝..
嗨,感謝您的快速回復..更改爲POST它工作:)使用ajax的方法,有什麼辦法發送一個完整的對象(具有多個屬性的郵件對象)而不是emailID,emailBody? – Shantu
@JohnSohn是的,它絕對可以發送一個完整的對象。例如,請參閱http://haacked.com/archive/2010/04/15/sending-json-to-an-asp-net-mvc-action-method-argument.aspx。 – ken2k
嗨,我剛剛看到,現在它可以發送簡單的字符串長的郵件正文..但HTML格式的郵件正文不起作用。沒有AJAX呼叫正在發射.. – Shantu