2013-12-04 3 views
0

У меня есть следующие ViewModel:Pass значение из функции Javascript для MVC модели

namespace SimpleModel.ViewModels 
{ 
    public class ClientSearch 
    { 
     public int Type { get; set; } 
     public string String { get; set; } 
    } 
} 

Ниже приведен HTML фрагмент кода:

<div id="clientSelect"> 
    <input type="radio" name="clientSelect" value="1" />Account Number<br /> 
    <input type="radio" name="clientSelect" value="2" />ID Number/Company Number<br /> 
    <input type="radio" name="clientSelect" value="3" />Surname/Company Name<br /> 
    @Html.EditorFor(model => model.String) 
</div> 

<p> 
    <input type="submit" value="Search" onclick="clientSearch('clientSelect')" /> 
</p> 

У меня есть следующие функции JavaScript:

<script type="text/javascript"> 
    function clientSearch(strGroupName) { 
     var selectedValue = 0; 
     var arrInputs = document.getElementsByTagName("input"); 
     for (var i = 0; i < arrInputs.length; i++) { 
      var oCurInput = arrInputs[i]; 
      if (oCurInput.type == "radio" && oCurInput.name == strGroupName && oCurInput.checked) 
       selectedValue = oCurInput.value; 
     } 
    } 
</script> 

Мне нужно обновить модель ClientSearch Тип Поле с selectedValue из функции Javascript, чтобы я мог передать модель обратно в контроллер для обработки.

Любая помощь будет оценена по достоинству.

+1

Вы в порядке с использованием jQuery в своем коде? –

ответ

1

Прежде всего этот объект не в порядке, вы не можете иметь свойство, C# ключевое слово

public class ClientSearch 
{ 
    public int Type { get; set; } 
    public string String { get; set; } // This right here is a reserved c# keyword 
} 

Так изменить ClientSearch класс к чему-то вроде

public class ClientSearch 
{ 
    public int Type { get; set; } 
    public string SearchString { get; set; } 
} 

Тогда ваш взгляд что-то вроде:

<div id="clientSelect"> 
    @Html.RadioButtonFor(x => x.Type, 1) @:AccountNumber<br/> 
    @Html.RadioButtonFor(x => x.Type, 2) @:ID Number/Company Number<br/> 
    @Html.RadioButtonFor(x => x.Type, 3) @:Surname/Company Name<br /> 
    @Html.TextBoxFor(model => model.SearchString) 
</div> 

<p> 
    <input type="submit" value="Search" /> 
</p> 

Нет необходимости в javascript ... представьте, что :)

+0

Большое спасибо Скотту - отличная помощь! – Sox

Смежные вопросы