Url.Action обрабатывает нулевые значения или использует клиентские значения javascript - PullRequest
0 голосов
/ 22 декабря 2010

ОК, мой оригинальный пост:

Url.Action выдает ошибку CS1026:) ожидается

получен ответ.Однако я обнаружил, что один из объектов в модели, на который я опирался для идентификатора, является нулевым.Я не могу понять, как переписать это, чтобы заставить его работать.

var url = '<%= Url.Action(
               "List", 
               "PlacementAgreementAgencyPlacementAgreementsPlacement", 
               new { 
                   Domain = "Placement", 
                   Id = Model.Item.PlacementAgreement.PlacementAgreementId, 
                   agencyPlacementAgreementId = Model.Item.AgencyPlacementAgreementId, 
                   Page = Model.PageNo 
               }) %>';

Мне нужно что-то вроде этого (который в настоящее время говорит, что слишком много символов в символьном литерале, что я думаю, может быть связано с одинарным / двойнымцитаты.

var url = '<%= Url.Action(
                "List", 
                "PlacementAgreementAgencyPlacementAgreementsPlacement", 
                 new { 
                   Domain = "Placement", 
                   Id = ' + $("#PlacementAgreementId").val() +',   
                   agencyPlacementAgreementId = ViewData.Model.AgencyPlacementAgreement == null ? 0 : ViewData.Model.AgencyPlacementAgreement.AgencyPlacementAgreementId, 
                   Page = ViewData.Model.PageNo
                 }
            ) %>';

Также пробовал:

var url = '<%= Url.Action(
                 "List", 
                 "PlacementAgreementAgencyPlacementAgreementsPlacement", 
                  new { 
                     Domain = "Placement", 
                     Id = %>' + $("#PlacementAgreementId").val() +'<%=,      
                     agencyPlacementAgreementId = ViewData.Model.AgencyPlacementAgreement == null ? 0 : ViewData.Model.AgencyPlacementAgreement.AgencyPlacementAgreementId, 
                     Page = ViewData.Model.PageNo}) %>';

Но это сочетание javascript и url.action меня просто смущает. Моя проблема в том, что в моем классе ViewData нет свойстваон содержит идентификатор ... но если я просматриваю источник на странице, я вижу, что он хранится на стороне клиента.

Есть идеи? Спасибо!

Ответы [ 2 ]

0 голосов
/ 22 декабря 2010

Джен,

Вы смешиваете Javascript на стороне клиента с C # на стороне сервера, не очень хорошая комбинация!

Единственный способ, которым я вижу, что вы делаете это, - это поместить заполнитель, а затем выполнить замену в Javascript, что-то вроде:

var url = '<%= Url.Action(
             "List", 
             "PlacementAgreementAgencyPlacementAgreementsPlacement", 
              new { 
                 Domain = "Placement", 
                 Id = 9999,      
                 agencyPlacementAgreementId = ViewData.Model.AgencyPlacementAgreement == null ? 0 : ViewData.Model.AgencyPlacementAgreement.AgencyPlacementAgreementId, 
                 Page = ViewData.Model.PageNo}) %>';

А затем выполните замену в Javascript :

var realUrl = url.replace('9999', $("#PlacementAgreementId").val());
0 голосов
/ 22 декабря 2010

Закончилось возвращением к тому, что было изначально, и передачей параметров строки запроса старой школы.

var url = '<%= Url.Action("List") %>?page=' + pageNo + 
          '&agencyplacementagreementid=' + $("#AgencyPlacementAgreementId").val();

Так что не уверен, был ли я раньше на совершенно неправильном пути, и ты должен был сделать это таким образом - или был способ сделать это, как мой оригинальный подход. Но это сейчас работает! :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...