2012-05-17 4 views
0

누군가가 틀린 문제를 파악하는 데 도움이되기를 바랍니다. 컨트롤러 삽입 명령을 내릴 수 없어서 컨트롤러가 작동하지 않는 이유를 알 수 없습니다. 여기 내 코드입니다 :Telerik MVC 삽입 명령이 컨트롤러를 실행하지 않습니다.

@(Html.Telerik().Splitter().Name("AnswerOptionSplitter") 
     .Orientation(SplitterOrientation.Horizontal) 
     .Panes(panes => 
     { 
      panes.Add() 
       .Size("28px") 
       .Resizable(false) 
       .Content(@<text> 
       <div class="entity-tools-vertical"> 
        <button id="editAnswerOption" title="Edit" class="entity-action"><img alt="Edit" height="24" src="@Url.Content("~/Content/Common/Images/Icons/edit-disabled.png")" width="24" /></button> 
        <button id="moveUpAnswerOption" title="Move Up" class="entity-action"><img alt="Move Up" height="24" src="@Url.Content("~/Content/Common/Images/Icons/up-disabled.png")" width="24" /></button> 
        <button id="moveDownAnswerOption" title="Move Down" class="entity-action"><img alt="Move Down" height="24" src="@Url.Content("~/Content/Common/Images/Icons/down-disabled.png")" width="24" /></button> 
        <button id="toggleEnableAnswerOption" title="Enabled" class="entity-action"><img alt="Enabled" height="24" src="@Url.Content("~/Content/Common/Images/Icons/accept-disabled.png")" width="24" /></button> 
        <button id="deleteAnswerOption" title="Delete" class="entity-action"><img alt="Delete" height="24" src="@Url.Content("~/Content/Common/Images/Icons/recycle-disabled.png")" width="24" /></button> 
       </div> 
       </text>); 
      panes.Add() 
       .Resizable(false) 
       .Content(
        @Html.Telerik().Grid<AnswerOptionViewModel>() 
         .Name("AnswerOptions") 
         .DataKeys(k => k.Add(o => o.ID)) 
         .ToolBar(commands => commands.Insert().ButtonType(GridButtonType.ImageAndText)) 
         .DataBinding(dataBinding => dataBinding.Ajax() 
          .OperationMode(GridOperationMode.Client) 
          .Select("_AnswerOptionsAjax", "Attribute", new { id = Model.ID }) 
          .Update("_AnswerOptionsUpdateAjax", "Attribute", new { attributeId = Model.ID }) 
          .Delete("_AnswerOptionsDeleteAjax", "Attribute", new { id = Model.ID }) 
          .Insert("_AnswerOptionsCreateAjax", "Attribute", new { id = Model.ID })  
         ) 
         .Columns(columns => 
         { 
          columns.Bound(m => m.AnswerAbbr).Title(""); 
          columns.Bound(m => m.AnswerText).Title(""); 
          columns.Bound(m => m.AnswerValue).Title("").Width(32); 
          columns.Bound(m => m.RelatedImageId).Title("") 
           .ClientTemplate("<img alt='<#= AnswerText #>' class='answer-option-icon' src='" 
            + Url.Action("AttributeAnswerOption", "ImageGenerator", new { id = Model.ID, index = 0 }) 
            + "' />").Width(32); 
          columns.Bound(m => m.RelatedImage).Hidden(); 
          columns.Bound(m => m.Ordinal).Hidden().HtmlAttributes(new { style = "display: none;" }); 
         }) 
         .ClientEvents(c => c 
          .OnRowSelect("AnswerOptions_onRowSelect") 
          .OnDataBound("AnswerOptions_onDataBound") 
          .OnComplete("AnswerOptions_onComplete") 
         ) 
         .HtmlAttributes(new { @class = "t-widget t-grid grid-no-header grid-no-footer" }) 
         .Selectable() 
         .Editable(e => e.Mode(GridEditMode.PopUp)) 
         .ToHtmlString() 
       ); 
     }) 
    ) 



    [Key] 
    [ReadOnly(true)] 
    [ScaffoldColumn(false)] 
    [DisplayName("Id")] 
    public int ID { get; set; } 

    [DisplayName("Code")] 
    [StringLength(10)] 
    public string AnswerAbbr { get; set; } 

    [Required(AllowEmptyStrings = false)] 
    [DisplayName("Value")] 
    [StringLength(200)] 
    public string AnswerText { get; set; } 

    public int? AnswerValue { get; set; } 

    [DisplayName("ImageType")] 
    public LookupViewModel ImageType { get; set; } 
    public string ImageTypeValue 
    { 
     get { return (ImageType == null) ? "" : ImageType.ColumnValue; } 
     set 
     { 
      if (String.IsNullOrEmpty(value) == false) 
      { 
       var lookup = LookupViewModel.GetLookup("AnswerOption", "ImageType", value) ?? 
          LookupViewModel.GetLookup("AnswerOption", "ImageType", "image/bmp"); 

       ImageType = lookup; 
      } 
      else 
       ImageType = null; 
     } 
    } 

    //[ScriptIgnore] 
    public byte[] RelatedImage { get; set; } 

    [DisplayName("Image")] 
    public string RelatedImageId 
    { 
     get { return ID.ToString(); } 
    } 

    [Required] 
    public Int16 Ordinal { get; set; } 

    [Required] 
    public bool Enabled { get; set; } 

    public void ToggleEnabled() 
    { 
     Enabled = !Enabled; 
    } 

    //[Required] 
    //public AttributeViewModel Attribute { get; private set; } 

    public static AnswerOptionViewModel CreateAttributeValue() 
    { 
     var answerOption = new AnswerOptionViewModel(); 


    [GridAction] 
    public ActionResult _AnswerOptionsCreateAjax(AnswerOptionViewModel model) 
    { 
     var answerOption = AnswerOptionViewModel.CreateAttributeValue(); 
     var newId = (Attribute.AnswerOptions.Count > 0) ? Attribute.AnswerOptions.Min(ao => ao.ID) - 1 : -1; 
     if (newId > 0) 
      newId = -1; 

     answerOption.ID = newId; 
     answerOption.AnswerText = "[blank]"; 

     if(TryUpdateModel(answerOption)) 
     Attribute.AnswerOptions.Add(answerOption); 

     return View(new GridModel(Attribute.AnswerOptions)); 

    } 

나에게 무슨 일이 일어나고 있는지 알아내는 데 도움이 제발, 내가 MVC 새로운 오전. 미리 감사드립니다.

답변

2

삽입, 업데이트, 삭제와 함께 매개 변수를 전달할 수 없습니다. 당신은 오직 select 만 통과 할 수 있습니다.

그리고 당신은 다음과 같이 그리드 onsubmitchanges 이벤트를 작성, 삽입, 업데이트와 매개 변수를 전달 다음이 삭제하려면 :이 위의 코드 myVal에서

function onSubmit(e) { 
     e.values.myVal = "Rahul"; 
    } 

내가 컨트롤러에서 원하는 변수입니다. 이렇게하면 컨트롤러에서 값을 가져올 수 있습니다.

관련 문제