4

メッセージを送信するためのカスタムコントローラーがあります。そのため、プロパティ フィールド名とエイリアス = "email" の値を取得する必要があります。これは、電子メールの送信に使用されます。

以下のこのコードは動作します

 var id = umbraco.uQuery.GetNodeByUrl("/contact-us");
 IPublishedContent root = Umbraco.TypedContent(id.Id);
 return root.GetProperty("email", true).Value.ToString();

ただし、ここでの問題は、ページ名が変わると URL が変わり、コードが壊れてしまうことです。

では、上記のコードを変更して現在のページ ID を取得し、ここに挿入するにはどうすればよいでしょうか (???);?

コードは次のようにする必要があると思います。

 IPublishedContent root = Umbraco.TypedContent(???);
 return root.GetProperty("email", true).Value.ToString();

どんな助けでも感謝されます

4

2 に答える 2

10

「ContactUs」ノードが複数ある場合、またはまったくない場合、ソリューションは問題を引き起こします。そうすると、どちらが得になるかわかりません。

(実際にはノードツリーで最初に見つかったものですが、誰かがそれらの順序を変更できます...)

お使いのコントローラーは Surface コントローラーですか? これを行うことができます:

IPublishedContent currentNode = Umbraco.TypedContent(CurrentPage.Id)
于 2014-04-22T08:07:31.947 に答える