主頁 > .NET開發 > Rails5:最近把我的表單改成了嵌套表單,現在需要訪問嵌套中的陣列。如何重寫我的jbuilder?

Rails5:最近把我的表單改成了嵌套表單,現在需要訪問嵌套中的陣列。如何重寫我的jbuilder?

2021-11-08 08:49:10 .NET開發

(抱歉,如果這個問題很簡單……我已經在這個問題上呆了幾天了)

所以......我最近改變了我的模型、控制器和部分 _form.html.erb 檔案來實作一個嵌套表單......

現在我的 jbuilder 檔案需要重構,但我不喜歡提取嵌套值......

原始 index.json.jbuilder

json.array! @assignments do |assignment|
 
  date_format = assignment.all_day_event? ? '%Y-%m-%d' : '%Y-%m-%dT%H:%M:%S'
  #binding.pry
  json.description assignment.description <---this used to work before I added my Nested Form
  
  # REQUIRED
  json.id assignment.id
  json.title assignment.roster_title
  json.start assignment.event_date.strftime('%Y-%m-%d') assignment.start_time.strftime('T%H:%M:%S')
  json.end assignment.event_date.strftime('%Y-%m-%d') assignment.end_time.strftime('T%H:%M:%S')
  # REQUIRED end
  shift_id = assignment.volunteer_shift_id.nil? ? assignment.volunteer_task_type_id : assignment.volunteer_shift_id
  json.volunteer_shift_id shift_id
# DATE
  json.date assignment.event_date.strftime('%Y-%m-%d')

# TIME
  json.start_time assignment.start_time.strftime('T%H:%M:%S')
  json.end_time assignment.end_time.strftime('T%H:%M:%S')
  json.color assignment.color unless assignment.color.blank?
#   json.color assignment.skedj_style unless assignment.skedj_style.blank?
  json.allDay assignment.all_day_event? ? true : false

  json.update_url assignment_path(assignment, method: :patch)
  json.edit_url edit_assignment_path(assignment)
end

這是我得到的錯誤...

 Rendering assignments/index.json.jbuilder
  Assignment Load (2.1ms)  SELECT "assignments".* FROM "assignments" INNER JOIN "volunteer_shifts" ON "volunteer_shifts"."id" = "assignments"."volunteer_shift_id" INNER JOIN "volunteer_events" ON "volunteer_events"."id" = "volunteer_shifts"."volunteer_event_id" WHERE ("volunteer_events"."date" BETWEEN $1 AND $2)  [["date", "2021-01-05"], ["date", "2021-01-06"]]
  Rendered assignments/index.json.jbuilder (27.8ms)
Completed 500 Internal Server Error in 48ms (ActiveRecord: 6.3ms)


DEPRECATION WARNING: #original_exception is deprecated. Use #cause instead. (called from real_exception at /home/fonso/.rbenv/versions/2.5.8/lib/ruby/gems/2.5.0/gems/better_errors-0.3.2/lib/better_errors/error_page.rb:82)

NoMethodError - undefined method `volunteer_event' for nil:NilClass:
  app/models/assignment.rb:46:in `description'
  app/views/assignments/index.json.jbuilder:12:in `block in _app_views_assignments_index_json_jbuilder__1085023644391212852_37504860'
  (gem) jbuilder-2.11.2/lib/jbuilder.rb:339:in `block (2 levels) in _map_collection'
  (gem) jbuilder-2.11.2/lib/jbuilder.rb:346:in `_scope'
  (gem) jbuilder-2.11.2/lib/jbuilder.rb:339:in `block in _map_collection'
  (gem) activerecord-5.0.7.2/lib/active_record/relation/delegation.rb:38:in `map'
  (gem) activerecord-5.0.7.2/lib/active_record/relation/delegation.rb:38:in `map'
  (gem) jbuilder-2.11.2/lib/jbuilder.rb:338:in `_map_collection'
  (gem) jbuilder-2.11.2/lib/jbuilder.rb:216:in `array!'
  (gem) jbuilder-2.11.2/lib/jbuilder/jbuilder_template.rb:90:in `array!'
  app/views/assignments/index.json.jbuilder:8:in `_app_views_assignments_index_json_jbuilder__1085023644391212852_37504860'

我的新 assignments_controller 已在“new”操作和 assignment_params 中進行了修改

class AssignmentsController < ApplicationController
  before_action :set_assignment, only: [:show, :edit, :update, :destroy]
  skip_before_action :verify_authenticity_token #TODO refactor this line to be very specific

  # GET /assignments or /assignments.json
  def index
    # @assignments = Assignment.limit(20)
    # @assignments = Assignment.where(start: params[:start]..params[:end])
    @assignments = Assignment.date_range(params[:start]..params[:end])

  end

  # GET /assignments/1 or /assignments/1.json
  def show
  end

  # GET /assignments/new
  def new
    @assignment = Assignment.new
    #fixme: build goes here
    @assignment.volunteer_shift.build
    @my_url = {:action => "create", :id => params[:id]}

  end

  # GET /assignments/1/edit
  def edit
  end

  # POST /assignments or /assignments.json
  def create
    @assignment = Assignment.new(assignment_params)

    # error wants contact.id not contact_id ???

    respond_to do |format|
      if @assignment.save
        format.html { redirect_to @assignment, notice: "Assignment was successfully created." }
        format.json { render :show, status: :created, location: @assignment }
      else
        format.html { render :new, status: :unprocessable_entity }
        format.json { render json: @assignment.errors, status: :unprocessable_entity }
      end
    end
  end


  # PATCH/PUT /assignments/1 or /assignments/1.json
  def update

    @assignment.update(assignment_params)
  end

  # DELETE /assignments/1 or /assignments/1.json
  def destroy
    @assignment.destroy
    # NOTE: comment original out 4 now
    # respond_to do |format|
    #   format.html { redirect_to assignments_url, notice: "Assignment was successfully destroyed." }
    #   format.json { head :no_content }
    # end
  end

  private
    # Use callbacks to share common setup or constraints between actions.
    def set_assignment
      @assignment = Assignment.find(params[:id])
    end

    # Only allow a list of trusted parameters through.
    def assignment_params
      #fixme: ,volunteer_shift_attributes: [:???, :???, :???] <--- insert this below?
      params.require(:assignment).permit(:title,
        :redirect_to, :set_date, :date_range, :contact_id,
        :start_time, :end_time, :start, :end, :attendance_type_id, :notes,
        :call_status_type_id, :closed, :lock_version, :color,
         volunteer_shift_attributes: [:volunteer_task_type_id,:roster_id,:program_id,:set_description,:set_date,:id,:destroy])
    end
end

下面是三個相關的模型關聯

class VolunteerEvent < ApplicationRecord
  belongs_to :volunteer_default_event
  validates_presence_of :date
  has_many :volunteer_shifts, :dependent => :destroy
  has_many :resources_volunteer_events, :dependent => :destroy
  validates_associated :volunteer_shifts
...
end
class VolunteerShift < ApplicationRecord
  validates_presence_of :roster_id #fixme: remove these validations?
  validates_presence_of :end_time #fixme: remove these validations?
  validates_presence_of :start_time #fixme: remove these validations?
  belongs_to :volunteer_default_shift

  belongs_to :volunteer_task_type
  has_many :assignments
  belongs_to :program
  belongs_to :roster
  belongs_to :volunteer_event

  has_many :contact_volunteer_task_type_counts, :primary_key => 'volunteer_task_type_id', :foreign_key => 'volunteer_task_type_id' #:through => :volunteer_task_type

...
end
class Assignment < ApplicationRecord
  attr_accessor :volunteer_shift #,:contact_id ???
  belongs_to :volunteer_shift
  has_one :volunteer_task_type, :through => :volunteer_shift, :source => :volunteer_task_type
  belongs_to :contact ,optional: true
  validates_presence_of :volunteer_shift
  validates_associated :volunteer_shift
  belongs_to :attendance_type
  belongs_to :call_status_type
  validates_presence_of :set_date, :if => :volshift_stuck
  # validates_existence_of :contact, :allow_nil => true <----THIS IS BAD
  accepts_nested_attributes_for :volunteer_shift, allow_destroy: true

  #fixme: Nodule::DelegationError -
  # This error appears when trying to show the "Add New Assignment" model on the /assignments view
  delegate :set_date, :set_date=, :to => :volunteer_shift
  delegate :set_description, :set_description=, :to => :volunteer_shift

  scope :date_range, lambda { |range|
    joins(volunteer_shift: :volunteer_event)
        .where(volunteer_shifts: { volunteer_events: { date: range } })
  }
  scope :is_after_today, lambda {||
    { :conditions => ['(SELECT date FROM volunteer_events WHERE id = (SELECT volunteer_event_id FROM volunteer_shifts WHERE id = assignments.volunteer_shift_id)) > ?', Date.today] }
  }
  scope :on_or_after_today, lambda {||
    { :conditions => ['(SELECT date FROM volunteer_events WHERE id = (SELECT volunteer_event_id FROM volunteer_shifts WHERE id = assignments.volunteer_shift_id)) >= ?', Date.today] }
  }
  scope :not_cancelled, -> { where('(attendance_type_id IS NULL OR attendance_type_id NOT IN (SELECT id FROM attendance_types WHERE cancelled = \'t\'))')}
  scope :roster_is_limited_by_program, -> {where("roster_id IN (SELECT id FROM rosters WHERE limit_shift_signup_by_program = 't')").joins(:volunteer_shift)}

  attr_accessor :attendance_type_id



  #fixme: fix all red dots on this page
  def real_programs
    return [] unless self.volunteer_shift&.roster
    return [] unless self.volunteer_shift.roster.limit_shift_signup_by_program
    self.volunteer_shift.roster.skeds.select{|x| x.category_type == "Program"}.map{|x| x.name}
  end

# TODO: find all time_range_s methods and either pull out to DRY or give unique names
  def time_range_s
    return "" unless start_time and end_time
    (start_time.strftime("%I:%M")   ' - '   end_time.strftime("%I:%M")).gsub( ':00', '' ).gsub( ' 0', ' ').gsub( ' - ', '-' ).gsub(/^0/, "")
  end

  def description
    self.volunteer_shift.volunteer_event.date.strftime("%D")   " "   self.time_range_s   " "   self.slot_type_desc
  end

  def roster_title
    self.volunteer_shift.roster.name
  end

  #fixme: date / set_date is fracked since old code was ported over
   def date
     volunteer_shift.date
   end

  #full calendar uses this method name....see the assignment.json.jbuilder
  def event_date
    self.date
  end

  def slot_type_desc
    b = (self.volunteer_shift.volunteer_task_type_id.nil? ? self.volunteer_shift.volunteer_event.description : self.volunteer_shift.volunteer_task_type.description)
    b = b   " (#{self.volunteer_shift.description})" if self.volunteer_shift.description and self.volunteer_shift.description.length > 0
    b
  end

  def display_name
    ((!(self.volunteer_shift.description.nil? or self.volunteer_shift.description.blank?)) ? self.volunteer_shift.description   ": " : "")   self.contact_display
  end

  def cancelled?
    (self.attendance_type&.cancelled)
  end

  def attended?
    (self.attendance_type and !self.attendance_type.cancelled)
  end

  def contact_display
    if self.closed
      "(closed)"
    elsif contact_id.nil?
      return "(available)"
    else
      self.contact.display_name   "(#{self.voltask_count})"
    end
  end

  def <=>(other)
    self.date <=> other.date
  end

  # arieljuod thinks this is suspect. "belongs_to :contact" should have taken care of setting contact object
  # def contact_id=(new_val)
  #   self.write_attribute(:contact_id, new_val)
  #   self.contact = Contact.find_by_id(new_val.to_i)
  # end

  def contact_id_and_by_today
    # Unless the contact id is empty, or the event date is after today.
    !(contact_id.nil? || self.volunteer_shift.volunteer_event.date > Date.today)
  end

  def voltask_count
    self.contact_volunteer_task_type_count ? self.contact_volunteer_task_type_count.attributes["count"] : 0
  end

  before_validation :set_values_if_stuck
  def set_values_if_stuck
    return unless volshift_stuck
    volunteer_shift.set_values_if_stuck(self)
  end

  after_destroy { |record| if record.volunteer_shift&.stuck_to_assignment; record.volunteer_shift.destroy; else VolunteerShift.find_by_id(record.volunteer_shift_id).fill_in_available; end}
  after_save {|record| if record.volunteer_shift&.stuck_to_assignment; record.volunteer_shift.save; end}
  after_save { |record| VolunteerShift.find_by_id(record.volunteer_shift_id).fill_in_available }

  # def volunteer_shift_attributes=(attrs) #fixme: why is this not getting called on volunteer_events/create_shift?
  #   self.volunteer_shift.attributes=(attrs) # just pass it up
  # end

#fixme: where is stuck_to_assignment ??? WTF?
  def volshift_stuck
    self.volunteer_shift&.stuck_to_assignment
  end

  def first_time_in_area?
    if self.contact and self.volunteer_shift and self.volunteer_shift.volunteer_task_type
      !ContactVolunteerTaskTypeCount.has_volunteered?(self.contact_id, self.volunteer_shift.volunteer_task_type_id)
    else
      false
    end #  and self.contact_id_changed? moved outside because we use update_attributes
  end

#for fullcalendar
  def all_day_event?
    self.start_time == self.start_time.midnight && self.end_time == self.end_time.midnight ? true : false
  end
end

...

end

我不知道發生了什么……為什么 jbuilder 現在壞了?是因為嵌套表單嗎?它與我的模型有關系嗎?我的 assignment_params 有什么問題???

如何重寫我的 index.json.jbuilder?

(Note: I suspect I have to do some nested array stuff in my json file, but I've not done that before...https://stackoverflow.com/questions/35749301/get-nested-arrays-in-json)

UPDATE:

So, I tested a theory out If I switch branches to an earlier version pre-nested form....all my json output gets displayed. If I switch back to the nested form branch I do not get any json output that my main page uses to display. (note: I have not been able to add a new record as the link to add a new record is on the main page...that now does not get displayed). Process of elimination points to the model associations recently added when I was trying to create a Nested Form. But if I comment those lines out... line 2 and 12... in my assignment model...

class Assignment < ApplicationRecord
  # attr_accessor :volunteer_shift #,:contact_id ???  <----TURN THIS OFF AND JSON DISPLAYS AGAIN
  belongs_to :volunteer_shift
  has_one :volunteer_task_type, :through => :volunteer_shift, :source => :volunteer_task_type
  belongs_to :contact ,optional: true
  validates_presence_of :volunteer_shift #belongs_to takes care of this now
  validates_associated :volunteer_shift
  belongs_to :attendance_type
  belongs_to :call_status_type
  validates_presence_of :set_date, :if => :volshift_stuck #belongs_to takes care of this now??
  #accepts_nested_attributes_for :volunteer_event, allow_destroy: true <----TURN THIS OFF

The json outputs to the main screen again no problems.

UPDATE 2:

如果我只是注釋掉 assignment.rb 的第 2 行所有 json 資料收割者

uj5u.com熱心網友回復:

錯誤資訊

NoMethodError - undefined method `volunteer_event` for nil:NilClass:
app/models/assignment.rb:50:in `description'

告訴在檔案description中的方法中50在一個實體上app/models/assignment.rb呼叫volunteer_eventnil:NilClass

def description
  self.volunteer_shift.volunteer_event.date.strftime("%D")   " "   self.time_range_s   " "   self.slot_type_desc
end

這意味著self.volunteer_shift必須回傳nil并且您的資料庫中有沒有volunteer_shift分配的分配。

此修復程式取決于您的應用程式,但一個簡單的解決方案可能是有description回傳nil時,有沒有volunteer_shift-這樣的

def description
  return unless volunteer_shift

  self.volunteer_shift.volunteer_event.date.strftime("%D")   " "   self.time_range_s   " "   self.slot_type_desc
end

uj5u.com熱心網友回復:

@spickermann 在他們的回答中幾乎已經解決了您的問題,但這不是一個完整的解決方案。

  1. 您的資料被弄亂了,因為您正在創建沒有關聯志愿者班次記錄的分配記錄。

允許發生這種情況是因為之前阻止這種情況發生的檢查已經過時,并且只能在具有這些validates_presence_of方法的舊版本 rails 中按預期作業,因此它們需要更新。

  1. 您需要進行測驗以確保這種情況不再發生,如果再次發生,您將立即收到通知。rspec、capybara 和 factorybot with guard 是我選擇的替代標準 Rails 測驗框架的工具,但是,你使用的工具應該是你的偏好,只要確保你有創建和更新分配記錄的測驗覆寫范圍,以確保你有一個有效的志愿者輪班記錄,這樣您就可以知道何時解決了導致此問題的原始問題,而不僅僅是何時處理了此特定問題。

  2. 最后,您要么需要修復您的資料,要么需要按照@spickermann 的建議,在您的分配模型中通過檢查志愿者的移位是否不為零,向在您的分配模型中使用志愿者移位的任何方法添加檢查,并且可能同時執行這兩件事。

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/352023.html

標籤:红宝石轨道 红宝石

上一篇:嘗試重定向到登錄頁面時,獲取此頁面不起作用將您重定向了太多次錯誤

下一篇:ActiveStorageBlob表,可以忽略列嗎?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • WebAPI簡介

    Web體系結構: 有三個核心:資源(resource),URL(統一資源識別符號)和表示 他們的關系是這樣的:一個資源由一個URL進行標識,HTTP客戶端使用URL定位資源,表示是從資源回傳資料,媒體型別是資源回傳的資料格式。 接下來我們說下HTTP. HTTP協議的系統是一種無狀態的方式,使用請求/ ......

    uj5u.com 2020-09-09 22:07:47 more
  • asp.net core 3.1 入口:Program.cs中的Main函式

    本文分析Program.cs 中Main()函式中代碼的運行順序分析asp.net core程式的啟動,重點不是剖析原始碼,而是理清程式開始時執行的順序。到呼叫了哪些實體,哪些法方。asp.net core 3.1 的程式入口在專案Program.cs檔案里,如下。ususing System; us ......

    uj5u.com 2020-09-09 22:07:49 more
  • asp.net網站作為websocket服務端的應用該如何寫

    最近被websocket的一個問題困擾了很久,有一個需求是在web網站中搭建websocket服務。客戶端通過網頁與服務器建立連接,然后服務器根據ip給客戶端網頁發送資訊。 其實,這個需求并不難,只是剛開始對websocket的內容不太了解。上網搜索了一下,有通過asp.net core 實作的、有 ......

    uj5u.com 2020-09-09 22:08:02 more
  • ASP.NET 開源匯入匯出庫Magicodes.IE Docker中使用

    Magicodes.IE在Docker中使用 更新歷史 2019.02.13 【Nuget】版本更新到2.0.2 【匯入】修復單列匯入的Bug,單元測驗“OneColumnImporter_Test”。問題見(https://github.com/dotnetcore/Magicodes.IE/is ......

    uj5u.com 2020-09-09 22:08:05 more
  • 在webform中使用ajax

    如果你用過Asp.net webform, 說明你也算是.NET 開發的老兵了。WEBform應該是2011 2013左右,當時還用visual studio 2005、 visual studio 2008。后來基本都用的是MVC。 如果是新開發的專案,估計沒人會用webform技術。但是有些舊版 ......

    uj5u.com 2020-09-09 22:08:50 more
  • iis添加asp.net網站,訪問提示:由于擴展配置問題而無法提供您請求的

    今天在iis服務器配置asp.net網站,遇到一個問題,記錄一下: 問題:由于擴展配置問題而無法提供您請求的頁面。如果該頁面是腳本,請添加處理程式。如果應下載檔案,請添加 MIME 映射。 WindowServer2012服務器,添加角色安裝完.netframework和iis之后,運行aspx頁面 ......

    uj5u.com 2020-09-09 22:10:00 more
  • WebAPI-處理架構

    帶著問題去思考,大家好! 問題1:HTTP請求和回傳相應的HTTP回應資訊之間發生了什么? 1:首先是最底層,托管層,位于WebAPI和底層HTTP堆疊之間 2:其次是 訊息處理程式管道層,這里比如日志和快取。OWIN的參考是將訊息處理程式管道的一些功能下移到堆疊下端的OWIN中間件了。 3:控制器處理 ......

    uj5u.com 2020-09-09 22:11:13 more
  • 微信門戶開發框架-使用指導說明書

    微信門戶應用管理系統,采用基于 MVC + Bootstrap + Ajax + Enterprise Library的技術路線,界面層采用Boostrap + Metronic組合的前端框架,資料訪問層支持Oracle、SQLServer、MySQL、PostgreSQL等資料庫。框架以MVC5,... ......

    uj5u.com 2020-09-09 22:15:18 more
  • WebAPI-HTTP編程模型

    帶著問題去思考,大家好!它是什么?它包含什么?它能干什么? 訊息 HTTP編程模型的核心就是訊息抽象,表示為:HttPRequestMessage,HttpResponseMessage.用于客戶端和服務端之間交換請求和回應訊息。 HttpMethod類包含了一組靜態屬性: private stat ......

    uj5u.com 2020-09-09 22:15:23 more
  • 部署WebApi隨筆

    一、跨域 NuGet參考Microsoft.AspNet.WebApi.Cors WebApiConfig.cs中配置: // Web API 配置和服務 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 二、清除默認回傳XML格式 ......

    uj5u.com 2020-09-09 22:15:48 more
最新发布
  • C#多執行緒學習(二) 如何操縱一個執行緒

    <a href="https://www.cnblogs.com/x-zhi/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2943582/20220801082530.png" alt="" /></...

    uj5u.com 2023-04-19 09:17:20 more
  • C#多執行緒學習(二) 如何操縱一個執行緒

    C#多執行緒學習(二) 如何操縱一個執行緒 執行緒學習第一篇:C#多執行緒學習(一) 多執行緒的相關概念 下面我們就動手來創建一個執行緒,使用Thread類創建執行緒時,只需提供執行緒入口即可。(執行緒入口使程式知道該讓這個執行緒干什么事) 在C#中,執行緒入口是通過ThreadStart代理(delegate)來提供的 ......

    uj5u.com 2023-04-19 09:16:49 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    <a href="https://www.cnblogs.com/huangxincheng/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/214741/20200614104537.png" alt="" /&g...

    uj5u.com 2023-04-18 08:39:04 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    一:背景 1. 講故事 前段時間協助訓練營里的一位朋友分析了一個程式卡死的問題,回過頭來看這個案例比較經典,這篇稍微整理一下供后來者少踩坑吧。 二:WinDbg 分析 1. 為什么會卡死 因為是表單程式,理所當然就是看主執行緒此時正在做什么? 可以用 ~0s ; k 看一下便知。 0:000> k # ......

    uj5u.com 2023-04-18 08:33:10 more
  • SignalR, No Connection with that ID,IIS

    <a href="https://www.cnblogs.com/smartstar/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/u36196.jpg" alt="" /></a>...

    uj5u.com 2023-03-30 17:21:52 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:15:33 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:13:31 more
  • C#遍歷指定檔案夾中所有檔案的3種方法

    <a href="https://www.cnblogs.com/xbhp/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/957602/20230310105611.png" alt="" /></a&...

    uj5u.com 2023-03-27 14:46:55 more
  • C#/VB.NET:如何將PDF轉為PDF/A

    <a href="https://www.cnblogs.com/Carina-baby/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2859233/20220427162558.png" alt="" />...

    uj5u.com 2023-03-27 14:46:35 more
  • 武裝你的WEBAPI-OData聚合查詢

    <a href="https://www.cnblogs.com/podolski/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/616093/20140323000327.png" alt="" /><...

    uj5u.com 2023-03-27 14:46:16 more