Создайте ссылку действия внутри формы ASP.NET MVC 3 - PullRequest
0 голосов
/ 22 марта 2012
@using (Html.BeginForm("AbuseReportInfo", "Admin",  new {id = @Model.Id, verify = true }))
{
    <div class="cashOutHistory-item-header">
         @Html.ActionLink(@Model.Material.Name, "Details", "Material", new { id = Model.Material.Id }, null)
    </div>
    <div class="cashOutHistory-item-header">
        Subject:
    </div>
    <div>
        <span class="cashOutHistory-item">
            @Html.DisplayFor(model => model.Subject)
        </span>
    </div>
    <div class="cashOutHistory-item-header">
        Description</div>
    <div>
        <span class="cashOutHistory-item">
            @Html.DisplayFor(model => model.Description)
        </span>
    </div>
    <p> 
        <input type="submit" id="btnVerify" name="btnVerify" value="Discard" />
    </p>
    <p>
        @Html.ActionLink("Back to List", "Index")
    </p>
}

При создании ссылки действия:

@Html.ActionLink(@Model.Material.Name, "Details", "Material", new { id = Model.Material.Id }, null)

ссылка не активна при загрузке страницы.

Но при размещении действия ссылка ниже:

@Html.ActionLink("Back to List", "Index")

ссылка работает.

Почему это? Я хочу, чтобы ссылка могла работать там, где она изначально размещена.

Ответы [ 2 ]

0 голосов
/ 22 марта 2012

Не думаю, что вам нужен второй знак @ в этой строке:

@Html.ActionLink(@Model.Material.Name, "Details", "Material", new { id = Model.Material.Id }, null) 

Измените его на:

@Html.ActionLink(Model.Material.Name, "Details", "Material", new { id = Model.Material.Id }, null) 

Вы уже находитесь в парсере Razor с @Html, поэтому второй маркер может сбрасывать парсер.

0 голосов
/ 22 марта 2012

, как @Giredrius упомянул в комментариях, есть большая вероятность, что какой-то JavaScript-код отменяет событие click, попробуйте изменить идентификатор или имя для тестирования, например,

@Html.ActionLink("test name", "Details", "Material", new { id = "TestId_1"}, null)

, если приведенный выше код работаетэто подтвердит наличие отмены js-кода, а затем поищите в js-файлах этот код

...