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。

我的问题是:

  1. 从剑道ui控件与服务器端交互(从控制器获取值并通过控制器设置值)的最佳实践是什么?

  2. 你能不能用一些像提交按钮这样的小例子来解释一下,把邮件正文提交回服务器

  3. 有可能用剑道UI做测试驱动开发吗?How or example会很有帮助。

thanks in advance.

HTML5的.net开发人员使用剑道UI asp.net MVC

问题是,它不适合编辑器的长电子邮件正文文本。我们不喜欢以上的沟通方式。

使用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请求)。