将数据从模型传递到布局

时间:2017-12-11 04:56:42

标签: jquery ajax asp.net-mvc

我有两个单选按钮,我想去不同的位置,因为我已经完成了选择。

$('input[type="radio"]').change(function () {
            var se = $(this).val();
            if (se.length > 0 && se == "cid") {
                window.location.href = "@Url.Action("index", "demo")";

            }
            else {
                window.location.href = "@Url.Action("index", "demo1")";
                 }
        });

但是页面加载后单选按钮没有保留其选定的属性.Radio按钮在布局视图中编码。我已经创建了一个模型类来保留所选按钮类型的值,但是当我将该模型传递给布局视图时,会出现类型" null reference"的例外。

我只想保留选择单选按钮

Subham

NathCorp,印度

1 个答案:

答案 0 :(得分:0)

根据您的要求,我更新了答案:

请根据需要在Demo1和Demo2控制器中将以下参数添加到Index action方法,

public ActionResult Index(string se, string searchText)
{
     //.....
}

请为文本框和按钮添加“id”属性。

<form action="/" method="get">
    <p style="color: white;" id="searchbarAnimate">
        <b>SEARCH:</b>
        <input id="txtSearch" type="text" name="searchby" placeholder="Enter Keyword" />
        <input id="btnSearch" type="button" value="search" />
    </p>
</form>
<div>
    <div>
        <input name="se" type="radio" value="cid" />
        CID
    </div>
    <div>
        <input name="se" type="radio" value="others" />
        Others
    </div>
</div>


 function getQueryStringValue(key) {
     return decodeURIComponent(window.location.search.replace(new RegExp("^(?:.*[&\\?]" + encodeURIComponent(key).replace(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1"));
 }

 $(document).ready(function() {
     var seQS = getQueryStringValue("se");
     if (seQS && seQS.length) {
         $('input[name="se"][value="' + seQS + '"]').prop('checked', true);
     }

     var searchTextQS = decodeURIComponent(getQueryStringValue("searchText") || '');
     if (searchTextQS && searchTextQS.length) {
         $('#txtSearch').val(searchTextQS);
     }

     function serachWords() {
         var se = $('input[name="se"][type="radio"]:checked').val();
         var searchText = $('#txtSearch').val();

         if (se.length > 0 && se == "cid") {
             window.location.href = '@Url.Action("index", "demo")?se=' + se + '&searchText=' + encodeURIComponent(searchText);
         } else {
             window.location.href = '@Url.Action("index", "demo1")?se=' + se + '&searchText=' + encodeURIComponent(searchText);
         }
     }

     $('input[name="se"][type="radio"]').change(function() {
         serachWords();
     });

     $('#btnSearch').click(function() {
         serachWords();
     });
 });

注意:如果页面中存在任何其他单选按钮,则name =“se”属性是必需的。

如有任何问题/疑虑,请与我联系。