[OK]をすべての奇妙な1ここに....私は4日前と今日の日付を含むドロップダウンリストでビューを持っているViewbag連銀DropdownFor - アクション一度選択削除しプロパティは、Paramのを持っている
...
インデックス(アクション)は、DateTimeのnullで取得されます。DropDownListは、現在の日付が選択された状態で表示されます。
HTML SOURCE URL \コントローラ\指数
<select class="form-control" id="Date" name="Date" onchange="Change_Date(this)"
<option value="23/10/2017">23/10/2017</option>
<option value="24/10/2017">24/10/2017</option>
<option value="25/10/2017">25/10/2017</option>
<option value="26/10/2017">26/10/2017</option>
<option selected="selected" value="27/10/2017">27/10/2017</option>
</select>
指数(アクション)が、それはまったく同じプロセスを経て、私は物理的に選択された= Trueのプロパティを見ることができるにもかかわらず、日時で起動されViewBag.DateListの...ドロップダウンには選択されたオプションがなく、最初のオプションに戻ります。
HTML SOURCE URL \コントローラ\指数?日付= 2017年10月26日
<select class="form-control" id="Date" name="Date" onchange="Change_Date(this)"
<option value="23/10/2017">23/10/2017</option>
<option value="24/10/2017">24/10/2017</option>
<option value="25/10/2017">25/10/2017</option>
<option value="26/10/2017">26/10/2017</option>
<option value="27/10/2017">27/10/2017</option>
</select>
私はJSをバイパスし、URLに直接日時を入れてみましたが、運のないようにしています。 ..
た?日付= URLで 日付は、オプションの要素から選択されたプロパティを削除する理由を私は理解できない...
ただ、両方の私で明確にしますViewBag.DateList内にSelected = Trueプロパティが存在しますが、パラメータがアクションに渡されたときには期待どおりに表示されません。あなたのURLでビュー
@Html.DropDownList("Date", (IEnumerable<SelectListItem>)ViewBag.DateList,
new { @class = "form-control", @onchange="Change_Date(this)" })
方法
public ActionResult Index(DateTime? date)
{
if (date.HasValue == false)
{
date = DateTime.Now.Date;
}
List<SelectListItem> Dates = new List<SelectListItem>();
for (int i = -4; i < 1; i++)
{
string date_display = DateTime.Now.Date.AddDays(i).ToShortDateString();
Dates.Add(new SelectListItem { Text = date_display, Value =date_display});
}
foreach (SelectListItem item in Dates)
{
if (item.Value == date.ToShortDateString())
item.Selected = true;
}
ViewBag.DateList = Dates;
}
JS
function Change_Date(val)
{
var value = $('#Date').val();
value = value.split("/").reverse().join("-");
var url = "/Controller/Index?date=" + value;
window.location.href = url;
}
非常に素晴らしい...感謝のメソッドのパラメータの名前、またはそれらが一致していないので、ドロップダウンリストで名前 のいずれかを変更します答え。 ModelStateがURLから取得したことはわかりませんでした –