0
ユーザーが隠すためにクリックした行を除外するビューを返そうとしていて、ユーザーが非表示にする行の情報を格納するCookieが生成されます。MVC3のグリッドビューから行を隠すためにクッキーから情報を取得する
私の問題は、クッキーには1つの値しか含まれていないため、select文は一度に1行しか除外しないということです。ここで私が持っているものです。
public ActionResult Hide(int id)
{
HttpCookie cookie = new HttpCookie("HideCookie");
cookie.Value = id.ToString();
cookie.Expires = DateTime.Now.AddYears(1);
System.Web.HttpContext.Current.Response.Cookies.Add(cookie);
int i = Convert.ToInt32(Request.Cookies.Get("HideCookie").Value);
var quotes = from q in db.View1 where !q.Quote_ID.Equals(i) select q;
return View(quotes.ToList());
}
私は、文字列を作成しようとした文字列に新しい値を追加しておくが、それはまだ唯一の最後の値をクリックとりました。
返信いただきありがとうございます。この割り当てでは、クッキーを使用して非表示にする必要があるため、その選択肢はありません。私は分割を変更し、構文を働かせるためにメソッドを少し参加させなければならなかった。 hideItems = cookie.Value.Split( '、')。ToList(); cookie.Value = string.Join( "、"、hideItems.ToArray()); hideItemsが文字列であり、Quote_IDがintであり比較できないため、ビューを返すことができません。私は "LINQ to Entities"メソッドを 'System.String ToString()'メソッドを認識しないし、このメソッドをストア式に変換することはできません。その上でToStringメソッドを使用しようとすると – user1354780
@ user1354780ああ...更新を参照してください。比較を行う前にリストをリストに変換することができます。 –
McGarnagle
私はそこに(string.joinとstring.splitの)いくつかのタイプミスがあったようです。今すぐ修正する必要があります:私はもっとコーヒーが必要なように見えます:-( – McGarnagle