いくつかの投稿といくつかのコードを閲覧しましたが、どれも機能していないようです。
同じページの部分ビューで選択した DropDown キーに基づいて WebGrid をリロードする必要があります。現在、ドロップダウン要素を作成し、ビューでこのコードを使用しています:
@Html.DropDownListFor(model => model.Users, Model.Users,
new { autopostback = "true" })
次の JavaScript コードとともに:
<script type="text/javascript">
$(document).ready(function () {
$('select:[autopostback=true],input[type=checkbox]:[autopostback=true],input[type=radio]:[autopostback=true]')
.live('change',function () {
$(this).closest('form').submit();
});
});
</script>
ブラウザのJavascriptコンソールは次のように述べています:
Uncaught Error:Syntax error, unrecognized expression:select:[autopostback=true],
input[type=checkbox]:[autopostback=true],
input[type=radio]:[autopostback=true]
コントローラーで呼び出しが行われていません。私は何を間違っていますか?
ありがとう。
[編集]
これは現在機能しているため、これまでに機能しているものは次のとおりです。
<script type="text/javascript">
$(function () {
$("#UserList").change(function (e) {
var _this = $(this);
$.post("@Url.Action("List","MainController", Model)", _this.closest("form").serialize(),
function (response) {
// do something with response.
});
});
そしてビュー:
<td class="tdatadata">@Html.DropDownList("UserList", Model.Users, new { autopostback = "true" })</td>
そしてビューモデル:
public class ModelViewModel
{
public int idSelected { get; set; }
[Display(Name = "Usuários Cadastrados")]
public IEnumerable<SelectListItem> Users { get; set; }
}
しかし、まだ問題があります: 選択したフィールドをコントローラー アクションに渡す方法は? DropDownListFor を使用してみましたが、その場合、オブジェクト名が失われ、Jscript が機能しません。