如何根据使用WebMatrix剃刀点击分配C#变量?

时间:2012-09-27 21:59:09

标签: c# database razor webmatrix

我无法解决当前的情况:

我需要为C#变量分配动态值,因为C#是查询我的数据库的。

此值必须与其所选(单击等)sql查询条目的主键ID匹配。

我根本不知道根据他们的搜索会有多少条目(或哪些条目)。

到目前为止,他们将搜索条件放入表单中,动态查询数据库,并按行顺序显示结果。

现在,我需要一个按钮(或某种用户选择的界面),可以告诉我他们选择编辑哪个条目,然后将数据库中该条目的值带到View&编辑页面。

我可以做所有这些,除了,当用户可以提供任何输入时,如何在C#已经完成渲染页面时,如何判断他们点击(或以其他方式选择)的条目? JavaScript无法查询数据库,那么这怎么可能呢?请记住,我知道jQuery,但不知道任何AJAX。

我正在使用WebMatrix C#razor,html,css,JavaScript,SQL Server Compact和jQuery(标准的WebMatrix设置,我敢肯定)。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

好吧,正如GmG评论的那样,webGrid旨在帮助解决这个问题,但是,如果你不想使用那个答案并构建自己的答案,那么我发现这对我来说是完美的(对我来说更好)具体案例):

在@foreach(db.Query(“queryString”)中的var行)循环中,我(在汇总信息中)添加了一个表单,以便找到的每个条目都有自己的表单。在表单中,我只放置了一个提交按钮和一个隐藏的输入文本元素,其中任何给定的指定名称在“name”属性中设置(即name =“inputName”)。此隐藏元素的值为@ row.EntryID(即value =“@ row.EntryID”),它将使用数据库中找到的条目的唯一主键绘制此字段的值。将表单操作设置为该页面中的另一个文件(即action =“/ somefile.cshtml”),我只是从隐藏的输入文本字段中提取EntryID(即var someVariable = Request.Form [“inputName”]; )。由于请求只会从提交它的任何表单中获取并且动态绘制隐藏输入字段的值,因此我总是可以获得他们单击按钮的条目的ID。

我希望这可以帮助任何想要在不使用WebGrid助手的情况下执行类似功能的人(尽管,你可能想要,我的意思是它就是它的用途)。然而,对于像我这样的人,我们可能知道如何以这种方式更好地控制它(因为我们可能不知道关于助手的杰克以及如何调整其中显示,设计和控制网络界面所需的小分钟配置我们想)。

无论如何,再次希望这有助于某人。

答案 1 :(得分:0)

现在已经很晚了,但可能对其他人有所帮助:

foreach示例

                @foreach(var row in sCustomersHO){
                <tr>
                    <td><a href="~/Admin/ManageCustomersCH?id=@row.CustId">@row.Account</a></td>
                    <td>@row.CustomerName</td>
                    <td>@row.RepName</td>
                    <td>@row.CustomerTypeDescription</td>
                    <td>@row.StopStatus</td>
                    <td><a href="~/Admin/DeleteCustomerHO?id=@row.CustId">Delete</a></td>
                </tr>
            }

网格示例:

            @gAllReports.GetHtml(
            tableStyle: "grid",
            headerStyle: "head",
            alternatingRowStyle: "alt",
            columns: gAllReports.Columns(
                gAllReports.Column("Name"),
                gAllReports.Column("Description", format: @<textarea disabled>@item.Description</textarea>),
                gAllReports.Column("Action", format: @<form method="post">@AntiForgery.GetHtml()<input type="hidden" id="UserId" name="UserId" value="@UserId" /><input type="hidden" id="ReportId" name="ReportId" value="@item.ReportId" /><button type="submit" name="action" value="add">Add</button></form>)
            )
        )