簡體   English   中英

Telerik MVC EditorTemplate模型為空

[英]Telerik MVC EditorTemplate Model is empty

我正在使用Telerik MVC網格來讓用戶管理系統中的報告。 我構建了一個EditorTemplate,其中包含一些字段以及Telerik的上載器。

我想將ReportId傳遞給uploader方法,以便它知道文件所屬的報告記錄。

@model MyMvcApp.Models.ReportModel

@Html.DisplayFor(t => t.ReportID)

@Html.HiddenFor(t=> t.ReportID)

@(Html.Telerik().Upload()
          .Name("attachments")
          .Multiple(false)
          .Async(async => async.Save("Save", "Report", 
                            new { Id = Model.ReportID })
          .AutoUpload(true)
))

但是, Model.RaportId返回空的GUID。

另外, @Html.DisplayFor(t => t.ReportID)無法正常工作。

但是@Html.HiddenFor(t=> t.ReportID)在我檢查頁面時工作正常。

我知道Telerik在創建編輯器模板時正在構建虛擬模型。 但是可以做什么?

  • 使用javascript填充ViewBag變量,然后在save方法中使用它?
  • 用不同的方式調用模型?

總而言之,我現在已更改為使用單獨的視圖進行創建/更新,但我想將其構建到網格中。 經驗會更好。

我認為您可能需要利用Telerik MVC的Client API中OnUpload方法

通過此方法,您可以在發送上傳請求之前訪問數據。 因此,您可以調試上傳的數據,如果不正確,則可以對其進行操作(例如,添加正確的ReportID參數)。

我遇到了同樣的問題,開始搜索。 據telerik稱, ajax編輯模式不支持Display模板 我認為這是有道理的,因為編輯模式幾乎立即彈出。 您將需要使用網格的OnEdit事件。

我現在正在使用禁用的文本框,如下所示。

 @Html.TextBoxFor(model => model.ReportId, new { disabled = "disabled" }) 

暫無
暫無

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

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