Проводка обратно выбранного динамического значения переключателя в бритве MVC4

0

Я пытаюсь отправить значение выбранного переключателя на контроллер после нажатия кнопки в приложении MVC4 RAZOR. Однако я не возвращаю реальное ожидаемое значение в контроллере, только 0.

Код частичного просмотра:

@model Blah.FeatureViewModel
<script type="text/javascript">
    function OnContinueClick() {
        $('#tabs').load('@Url.Action("Continue", "Home")', { SelectedFeature : Model.SelectedFeature });
    }
</script> 

@using (Html.BeginForm())
{
    <div>
        @foreach (var feature in Model.FeatureDictionary)
        {
            <p>
                @Html.RadioButtonFor(x => x.SelectedFeature, feature) @feature.Value
            </p>       
        }

        <input type="button" name="continueButton" id="continueButton" value="Continue" onclick="OnContinueClick()" />
    </div>
}

Просмотреть код модели:

using System.Collections.Generic;

namespace Blah.Models
{
    public class FeatureViewModel
    {
        public Dictionary<int, string> FeatureDictionary { get; set; }
        public KeyValuePair<int, string> SelectedFeature { get; set; }
    }
}

Код контроллера:

[HttpPost]
public ActionResult Continue(FeatureViewModel featureViewModel)
{
    //pass data to another controller
}

Думаю, мне может понадобиться JQuery, чтобы вернуть стоимость?

Теги:
razor
asp.net-mvc-4

1 ответ

0

Значение, которое вы передаете функции load jQuery, является значением Модели во время визуализации представления. Чтобы передать текущее выбранное значение, вам нужно что-то вроде:

$('#tabs').load('@Url.Action("Continue", "Home")',
                { SelectedFeature : $('[name="SelectedFeature"]').val() });

Также, как сказал Джоэл Эфиртон, вам нужно изменить тип вашего действия с FeatureViewModel на FeatureViewModel KeyValuePair<int, string>.

я не уверен

@Html.RadioButtonFor(x => x.SelectedFeature, feature)

дает вам желание, которого вы хотите либо потому, что функция KeyValuePair<int, string>. Что вы пытаетесь создать радиокнопку точно?

  • 0
    Это создаст радиокнопку, которая отображает некоторые названия продуктов (функций) для каждой кнопки и должна опубликовать идентификатор функции.
  • 0
    @Vapen Чем вы , вероятно , просто нужен ваш метод действия , чтобы принять аргумент типа ID, int я полагаю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню