4

私たちのチームが、JavaScriptが有効になっていることが保証されているクライアントユーザーがいるイントラネットを維持しているように見えるので、jQueryをより「徹底的に」使い始めることができます。私たちのシステムは非常に大きいので、ASP.NET MVCアプリケーションで領域を使用していても、領域のサブシステムごとにデータのセットを追加、編集、削除、および表示するためのページの量は非常に多くなります。エリアのサブシステムには、約20のデータテーブルを含めることができます。20のデータテーブルがあり、それらを追加、編集、削除、および表示するための個別のページがある場合、合計60ページがあることを意味します。ここで、エリアごとに20のサブシステムがあると仮定すると、1つのエリアには20 * 60ページがあり、イントラネットには約15のエリアがあります。あなたはポイントを得る、それは巨大です。

私の本当のポイントに移り、ページにデータのテーブルを置くjQuery機能を使用してこれを削減したいと思います。「削除」を押すと、フォームを送信する確認ボタン付きの削除ダイアログが表示されます。 、正しいアクションにリダイレクトして、私のために作業を行ってください。今、私は次の分野でいくつかのガイダンスが必要です:

  1. ASP.NET MVCを使用してまったく投稿せずに削除したい場合、これを行うためのプロセスは何ですか?これには、削除を押して削除できるかどうかを確認し(FK関係は正しい方法で処理する必要があります)、ページを更新せずに削除してビューのテーブルから行を削除できる場合は、これが含まれます。
  2. jQueryを使用して非同期プロセスから削除アクションを呼び出すにはどうすればよいですか?そうするのは賢明ですか?通常はを使用しますHtml.ActionLink。フォームでラップする必要がありますか?
  3. 同じことが編集と更新にも当てはまりますが、これを行うための最良の方法は何ですか?

私はエレガントな解決策を探しています、そして私がこれをしなければならないすべてのページに適用するのは難しいことではありません。任意の入力をいただければ幸いです。

4

3 に答える 3

3

リンクを使用して、AJAX POST (ポストバックなし) を介して削除アクションを開始するプロジェクトに取り組んでいます。

$("a.deleteLink").click(function(event)
{
    event.preventDefault();
    if (confirm("Are you sure you want to delete this section?"))
    {
        //TODO Display processing indicator

        var myId = /* id of element */ ;

        $.post("/Section/Delete", { id: myId }, function(data)
        {
            if (data == "Success")
            {
                //handle success
                //TODO Fade out element using .fadeOut()
            }
            else
            {
                //handle error
            }
        });
    }
});

コントローラー メソッドは単純に /Controllers/SectionController.cs にあります。データベースを変更するアクションと同様に、POST のみを受け入れます。

    private SectionRepository secRepo = new SectionRepository();

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Delete(long id)
    {
        Section sec = secRepo.GetById(id);

        secRepo.Delete(sec);
        secRepo.Save();

        return Content("Success");
    }
于 2009-09-10T23:44:53.233 に答える
3

Subsonic を使用した ASP.NET MVC で取得できるテンプレートに関するビデオを見終わったところです。私はまだこれを実装したり、試したりしていませんが、信じられないようです! ここを見てください。


これが実行可能なオプションであるかどうかはわかりませんが、最近、あなたと同様のニーズがあり、プライマリ アプリケーションを ASP.NET MVC アプリケーション ( jQgridを使用) としてリリースし、次にセカンダリ ASP.NET Webとしてリリースします。動的データを使用した管理機能用のフォーム アプリケーション。これは非常にうまく機能し、時間を大幅に節約できました。

また、DynamicData と MVCは、次のリリースのいくつかで一緒になるようです。

その他の読み物...
* David Hayden
* rbqsoft
* Sharp Architecture Wiki

于 2009-09-10T15:18:04.660 に答える
0

jQuery ダイアログをパーティーに投げたい場合は、このRicardo Covoの投稿が良い仕事をします

ここに画像の説明を入力

于 2011-04-11T14:47:42.460 に答える