我相信这肯定已经得到了回答,但是我找不到解决方案,所以我认为我可能误解其他人的解决方案或试图做一些愚蠢的事情,但我们走了.
我在C#中为outlook 2010编写了一个加载项,用户可以单击功能区中的按钮并将电子邮件内容提交到网站.当他们点击按钮时,网站应该在默认浏览器中打开,从而允许他们查看刚刚提交的内容并在网站上与之交互.我可以使用url中的查询字符串来执行此操作:
System.Diagnostics.Process.Start("http://www.test.com?something=value");
Run Code Online (Sandbox Code Playgroud)
但是对可以提交的数据量的限制以及凌乱的网址阻止了我采用这种方法.我想使用http帖子,因为它显然更合适.但是,我发现这样做的方法似乎并没有在提交帖子数据后在浏览器中打开页面:
http://msdn.microsoft.com/en-us/library/debx8sh9.aspx
总结; 用户需要能够单击Outlook功能区中的按钮,打开Web浏览器并显示通过邮件提交的电子邮件内容.
编辑:
是的,我找到了一种方法,它很漂亮,但它的工作原理!只需创建一个临时的.html文件(然后按上面启动),其中包含一个包含所有数据隐藏字段的表单,并使用javascript在页面加载时提交.
我真的不喜欢这个解决方案,因为它依赖于javascript(我只提供了一个提交按钮)并且看起来像是一个小屋,所以我仍然希望有人在这里会想出更好的东西.
我不确定我是否会以这种方式构建解决方案。相反,我会将所有数据发布到 Web 服务(使用 HttpWebRequest,如 @Loci 所描述的,或者只是使用 Visual Studio 导入服务),该服务会将数据存储在数据库中(可能处于待处理状态)。然后将用户(使用 Process.Start 方法)引导至显示待处理帮助票证的页面,这将允许他们批准或放弃该票证。
这听起来像是需要做更多的工作,但它应该清理您想要做的事情的架构。另外,您还有一个额外的好处,那就是不用担心如何从客户端触发表单发布。
编辑:
一个普通的 ASMX Web 服务至少应该可以帮助您入门。您可以右键单击您的项目并选择添加服务引用来生成调用服务的代理代码。