簡體   English   中英

通過 ajax 將 XML 屬性與元素一起發送到 C# Z594C103F2C6E04C03D1AZAB059F03

[英]Send XML attributes along with Elements via ajax to C# controller method and parse to save

通常要在 web 頁面上編輯的 XML 元素作為輸入名稱發送示例:

然后在 C# controller 方法中:

List<string> keys = Request.Form.Keys.Cast<string>().Where(item => item[0] == '/' && item[1] == '/').ToList();
foreach (var key in keys)
{
   var item = xDoc.SelectSingleNode(key, manager);
   if (item != null)
      item.InnerText = Request.Form[key];
   else
       throw new InvalidOperationException("Could not decode parameter with key " + key + " and value " + Request.Form[key]);
}

通常 XML 元素在密鑰集合的 Request.Form 部分中發送,因此 1 個關鍵示例是:

"//IVS-NONINST-REC/IVS-NONINST-REC-REST[1]/IVS-SEC-DIAG-CDS[1]/IVS-SEC-DIAG-T[1]"

但是,我需要發送一些屬性來解析和保存這些屬性。 我不確定如何“正確”發送它們,如果我發送屬性,比如

"//IVS-NONINST-REC/IVS-NONINST-REC-REST[1]/IVS-SEC-DIAG-CDS[1]/IVS-SEC-DIAG-T[1]/IVS-SEC-DIAG"

代碼循環遇到 throw new InvalidOperationException。

  1. 如何正確發送屬性?
  2. 如何正確解析 C# 中的屬性以保存它們?

該元素的 XML 及其屬性如下所示

<IVS-SEC-DIAG-T IVS-SEC-DIAG="C56.9" IVS-SEC-POA="">test</IVS-SEC-DIAG-T>

更新,完成 xml(為簡潔起見刪除了一些)

 <IVS-NONINST-REC xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <IVS-NONINST-REC-KEY IVS-REC-TYP="2" IVS-TM-STAMP="210549" IVS-ADJ-KEY="5">    
    </IVS-NONINST-REC-KEY>
    <IVS-NONINST-REC-REST IVS-PAT-ID="333089302">
      <IVS-SEC-DIAG-CDS>
       <IVS-SEC-DIAG-T IVS-SEC-DIAG="C56.9" IVS-SEC-POA="">test</IVS-SEC-DIAG-T>
    </IVS-NONINST-REC-REST>
</IVS-NONINST-REC>

雖然我可以在 xDoc InnerHTML 中看到所有 xml 元素和屬性,但 xDoc 認為沒有屬性 Here is a screencap

xDoc 的屏幕截圖

您應該在 xpath 的屬性名稱中添加@

//.../IVS-SEC-DIAG-T[1]/@IVS-SEC-DIAG

暫無
暫無

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

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