我不确定如何发布此问题,而不包括我网站代码的一半,但这里有提到。使用jQuery和AJAX在IE中发布ASP.NET MVC授权
我有一个网站,有一个转包表格,一个公司表格和一个联系表格。从转包形式,您可以通过打开jQuery对话框并发布公司或联系信息的按钮创建新公司和/或新联系人。从公司的表格中,有一个按钮可以创建一个新的联系人。
从分包形式:
$('#popupCreateCompany').dialog(
{
autoOpen: false,
modal: true,
width: 600,
open: function(event, ui) {
if ($('#primary_company').val().length > 0) {
$('#secondary').attr('checked', 'true');
}
else {
$('#primary').attr('checked', 'true');
$('#sec').hide();
}
},
buttons:
{
'Add': function() {
var dialog = $(this);
var form = dialog.find('input:text, select');
$.post('<%= ResolveUrl("~/company/post") %>', $(form).serialize(), function(data) {
if (data.Result == "success") { ...
。
$('#popupCreateContact').dialog(
{
autoOpen: false,
modal: true,
width: 600,
buttons:
{
'Add': function() {
var dialog = $(this);
var form = dialog.find('input:text, select');
$.post('<%= ResolveUrl("~/contact/post") %>', $(form).serialize(), function(data) { ...
从公司形式:
$('#popupCreateContact').dialog(
{
autoOpen: false,
modal: true,
buttons:
{
'Add': function() {
var dialog = $(this);
var form = dialog.find('input:text, select');
$.post('<%= ResolveUrl("~/contact/post") %>', $(form).serialize(), function(data) {
if (data.Result == "success") { ...
此功能工作,直到我们实现了一些自定义授权的网站。现在,您可以从分包合同中添加联系人,但不能从分包合同中添加公司。您无法从公司表单添加联系人。当你点击“添加”时,没有任何反应。我在$.post
行前后添加了一条警报,它之前已经触发警报,但之后没有警报。把断点放在contact/post处,它永远不会到达那里。相同的授权组可以访问添加分包商,公司和联系人。
在公司负责人:
[AcceptVerbs(HttpVerbs.Post), MarlowAuthorize(Roles = "Subcontract_Modify, Admin", ViewName = "AuthorizationError")]
public JsonResult Post(company company)
{
if (ModelState.IsValid)
{
try
{
同样的接触后的程序被调用从分包形式从公司形式。但一个有效,另一个不行。在联系人控制器中:
[AcceptVerbs(HttpVerbs.Post), MarlowAuthorize(Roles = "Subcontract_Modify, Admin", ViewName = "AuthorizationError")]
public JsonResult Post(contact contact)
{
if (ModelState.IsValid)
{
try
{
我试过向控制器中的位置添加授权属性,我尝试删除它们。无论我尝试哪种组合,我都会得到相同的结果。您可以从分包合同中添加联系人,但不能添加公司。而且,您无法添加公司的联系人。我一直在想,知道这将导致我看到有什么区别,但我似乎无法找到它。
编辑 刚走进Firefox中使用Firebug,看来,它的工作在Firefox。但在IE7或IE8中不起作用。
我从来没有使用过提琴手。在我最初登录到我的网站后,在“Web会话”下看不到任何新的列表。我可以看到我所有的堆栈溢出活动。 – RememberME 2010-07-08 20:07:06
没关系,我明白了。这是因为该网站是https。 – RememberME 2010-07-08 20:34:06