HTML5的.net开发人员使用剑道UI asp.net MVC
本文关键字:net UI asp MVC 开发 HTML5 | 更新日期: 2023-09-27 17:50:44
我已经使用剑道网格来显示从控制器收集的电子邮件列表,然后当用户单击网格行时,电子邮件主体显示在剑道编辑器中,我想在编辑器上编辑电子邮件,并使用web服务将电子邮件主体保存回数据库。但是在服务器端与c#代码交互并不是那么简单。我们不想有太多的Javascript代码。当前代码是这样的
__ _ __ 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);
}
问题是,它不适合编辑器的长电子邮件正文文本。我们不喜欢以上的沟通方式。
我们希望在c#领域,而不是Javascript。
我的问题是:
从剑道ui控件与服务器端交互(从控制器获取值并通过控制器设置值)的最佳实践是什么?
你能不能用一些像提交按钮这样的小例子来解释一下,把邮件正文提交回服务器
有可能用剑道UI做测试驱动开发吗?How or example会很有帮助。
thanks in advance.
问题是,它不适合编辑器的长电子邮件正文文本。我们不喜欢以上的沟通方式。
使用POST代替GET:
[HttPost]
public JsonResult SendMail(Guid emailID, string emailBody)
{
...
}
$.ajax({
url: "/Home/SendMail/", (you should use Url.Action here)
type: "POST",
data: {
emailID: mailID,
emailBody: mailBody
},
cache: false,
timeout: 10000,
dataType: "json",
success: function (result) {
if (result.Success) {
alert("Operation Completed");
} else {
alert("Operation Failed");
}
}
});
从剑道ui与服务器端交互的最佳实践是什么控件(从控制器获取值并通过设置值)控制器?
根据我的经验,这是一个很好的方法(使用AJAX请求)。