簡體   English   中英

ASP.NET MVC調用控制器方法DevExpress

[英]ASP.NET MVC Calling Controller Method DevExpress

我正在嘗試在控制器上調用方法,但它給了我一個空錯誤。 我試圖在代碼上執行getKeyValue,但無法正常工作。 我不知道我在做什么錯。 謝謝你的幫助。

控制器代碼

public  ActionResult EditRecord(int id)
{
    int x = id;

    return PartialView("~/Views/FileMaintenance/Principal/EditPrincipal.cshtml", PrincipalInfo);
}

DevExpress GridView代碼

settings.Columns.Add(column =>
        {
            column.FieldName = "Unbound";
            column.Caption = "Action";
            column.UnboundType = DevExpress.Data.UnboundColumnType.Object;
            column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.True;
            column.ReadOnly = false;

            column.ColumnType = MVCxGridViewColumnType.ButtonEdit;
            column.SetDataItemTemplateContent((c) =>
            {

                Html.DevExpress().Button(b =>
                {
                    b.Name = "btnVE" + c.KeyValue;
                    b.Text = "V/E";
                    b.UseSubmitBehavior = false; // prevent default submit action
                    b.EnableClientSideAPI = true; // add this line if not sure
                    b.ClientSideEvents.Click = string.Format("function(s, e) {{ window.location = '{0}?key={1}'; }}",
                            DevExpressHelper.GetUrl(new { Controller = "ViewPrincipal", Action = "EditRecord" }),
                            c.KeyValue.ToString());
                }).GetHtml();
            });
        });

錯誤

對於“ WMS_Web.Controllers.FileMaintenance.ViewPrincipalController”中的方法“ System.Web.Mvc.ActionResult EditRecord(Int32)”,參數字典包含一個非空類型“ System.Int32”的參數“ id”的空條目。 可選參數必須是引用類型,可為空的類型,或者必須聲明為可選參數。 參數名稱:參數

您沒有在DevExpressHelper.GetUrl方法中提供參數id 您需要設置它。 在下面的示例中,我將值設置為1。我不明白為什么當要求的值為“ id”時,為什么要在查詢字符串中放置“鍵”。 將“鍵”更改為“ id”也應解決您的問題。

settings.Columns.Add(column =>     
{
        column.FieldName = "Unbound";
        column.Caption = "Action";
        column.UnboundType = DevExpress.Data.UnboundColumnType.Object;
        column.EditFormSettings.Visible = DevExpress.Utils.DefaultBoolean.True;
        column.ReadOnly = false;

        column.ColumnType = MVCxGridViewColumnType.ButtonEdit;
        column.SetDataItemTemplateContent((c) =>
        {

            Html.DevExpress().Button(b =>
            {
                b.Name = "btnVE" + c.KeyValue;
                b.Text = "V/E";
                b.UseSubmitBehavior = false; // prevent default submit action
                b.EnableClientSideAPI = true; // add this line if not sure
                b.ClientSideEvents.Click = string.Format("function(s, e) {{ window.location = '{0}'; }}",
                        DevExpressHelper.GetUrl(new { Controller = "ViewPrincipal", Action = "EditRecord", id = c.KeyValue.ToString() }));
            }).GetHtml();
        });
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM