2017-02-09 51 views
0

獲得價值我在剃刀CSHTML文件中聲明如下一個popupcontrol:的DevExpress MVC編輯控制器上的

@Html.DevExpress().PopupControl(settings => 
{ 
settings.Name = "popSendBackReview"; 
settings.HeaderText = "Send Review Back to Scheduler"; 
settings.AllowResize = false; 
settings.ShowHeader = true; 
settings.ShowOnPageLoad = false; 
settings.AllowDragging = true; 
settings.CloseAction = CloseAction.CloseButton; 
settings.CloseOnEscape = false; 
settings.Modal = true; 
settings.PopupElementID = "popSendBackReview"; 
settings.AutoUpdatePosition = true; 
settings.PopupHorizontalAlign = PopupHorizontalAlign.WindowCenter; 
settings.PopupVerticalAlign = PopupVerticalAlign.WindowCenter; 
settings.Height = 280; 
settings.Width = 450; 

settings.SetContent(() => 
{ 
    Html.RenderPartial("_SendBackReviewPanel"); 
}); 
}).GetHtml() 

局部視圖包含備忘錄框和按鈕調用一個動作:

@Html.DevExpress().Memo(settings => 
{ 
settings.Width = 300; 
settings.Height = 150; 
settings.Style.Add("margin-bottom", "10px"); 
settings.Name = "txtReviewComment"; 
settings.Properties.ValidationSettings.RequiredField.IsRequired = true; 
settings.Properties.ValidationSettings.RequiredField.ErrorText = "A Review Comment is Required."; 
settings.Properties.ValidationSettings.ErrorDisplayMode = ErrorDisplayMode.Text; 
settings.Properties.ValidationSettings.ErrorTextPosition = ErrorTextPosition.Bottom; 
settings.Properties.ValidationSettings.Display = Display.Dynamic; 
settings.Properties.ValidationSettings.ValidationGroup = "Review"; 
}).GetHtml() 

@Html.DevExpress().Button(settings => 
{ 
settings.Name = "btnSaveReview"; 
settings.Text = "Send Back for Scheduler Review"; 
settings.UseSubmitBehavior = false; 
settings.ValidationGroup = "Review"; 
settings.RouteValues = new { Controller = "Matter", Action = "ResolveReview", Pass = false, Comment = Model.CommentText }; 
}).GetHtml() 

@Html.DevExpress().Button(settings => 
{ 
settings.Name = "btnCancelReview"; 
settings.Text = "Cancel"; 
settings.UseSubmitBehavior = false; 
settings.ClientSideEvents.Click = "function(s,e) { popSendBackReview.Hide(); }"; 
}).GetHtml() 

我試圖讓輸入到服務器端的這個框中的文本(在我的控制器上的操作)。在我的應用程序其他地方我已經能夠使用下面的代碼來獲得的控制值:

public ActionResult ResolveReview(bool Pass) 
{ ... 
EditorExtension.GetValue<string>("txtReviewComment") 
...} 

然而,這將返回null在這種情況下。在popupcontrol中呈現的局部視圖中從控件獲取此值的正確方法是什麼?

回答

0

我自己找到答案,我的按鈕導致GET方法觸發而不是POST。通過在我的保存按鈕上設置「UseSubmitBehavior」爲true,它開始觸發POST函數,並允許

行獲得一個值。

1

通常,爲了在提交時傳遞整個表單的內容,必須將表單容器中的編輯器包裝起來。然後,可以使用標準型號綁定機制來檢索所需編輯器的值。當使用的DevExpress MVC編輯,請確保DevExpressEditorsBinder註冊:

@using(Html.BeginForm("ResolveReview")) { 
    @Html.DevExpress().Memo(settings => { 
     settings.Name = "txtReviewComment"; 
    }).GetHtml() 

    @Html.DevExpress().Button(settings => { 
     settings.Name = "btnSaveReview"; 
     settings.UseSubmitBehavior = true; 
    }).GetHtml() 
} 

public ActionResult ResolveReview(bool Pass) { 
    EditorExtension.GetValue<string>("txtReviewComment") 
} 

public ActionResult ResolveReview(string txtReviewComment) { ... } 

檢查MVC Data Editors - Model Binding and Editing學習資源。

相關問題