のオブジェクトのリストを反復する方法ビューのモデルにある生徒オブジェクトのリスト内の生徒の名前を取得して、$ .post、後者を使ってサーバーに送信する必要があります私はそれを理解しましたが、オブジェクトのリストを反復する方法を理解できません。Javascript:モデル
//Student object
public class Student
{
public string FirstName { get; set; }
public string LastName { get; set; }
//Like a bunch of other attributes here
}
これは、ビュー内のモデルである:最初のIで
//StudentSearchResult ViewModel
public class StudentSearchResult {
public IEnumerable<Student> { get; set;}
}
かかわらあるとしてちょうど学生のリストオブジェクトを送信するが、それはとしては良い考えではないかもしれない基本的に私はこれを持っていますそれはあまりにも多くの属性(私はモデルを送信しようとしたときに私にこの「循環的な」エラーを与えました)とバンドルされています。そして、私はすでに持っている$ .postメソッドを使ってFirstNameとLastNameをコントローラに送る必要があります。私はこれらのようなものを試みた:
var names = []
var length = "@Model.StudentSearchResult.count()";
for (int i = 0; i < length; i++)
{
names[] = "@Model.StudentSearchResult[i].Name + @Model.StudentSearchResult[i].LastName"
}
//$.post function here that calls the controller and send the concatenated names of each student in studentsearchresult.
をしかし、私は私の見解モデル内のオブジェクトのリストをJavaScriptで反復処理する方法を、「i」はそれほど存在しないというエラーを取得したい、atributesにアクセスし、それらを連結して、それをコントローラに送信できるように文字列の配列に格納しますか?コントローラがこのように見えると思います。
[HttpPost]
public ActionResult StudentSearchResult(/*other stuff I send here, */ string[] studentNames){
//stuff here
return View();
}
ありがとう!
確かに 'var length =" @ Model.StudentSearchResult.count() ";' var length = "5"; 'のような結果になりますか?それで文字列ですか?はい、JavaScriptは大雑把に型付けされていますので、ほとんどはうまくいくでしょうが... –
簡単な部分は、ビューモデル内のオブジェクトのリストのメンバーにアクセスして配列に配置することです。 – Ricardo