我已经使用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