|
EXCELLENT CATCH!
This proves once again that two heads are better than one.
I simply neglected that.
Thanks soo much.
|
|
|
|
|
just read a article on web api core versioning from this url http://www.c-sharpcorner.com/article/asp-net-core-api-versioning-in-simple-words-update-1-2-0/
i have few question about
[ApiVersion("2.0")] and MapToApiVersion("2.0")
1) why we need to use two attribute for a controller and action called
[ApiVersion("2.0")] and MapToApiVersion("2.0").
if i use
[ApiVersion("2.0")] for controller then it should work for whole controller then why i need to decorate action with
MapToApiVersion("2.0")
2) why
[ApiVersion("1.0")] and [Route("api/v{version:apiVersion}/[controller]")]
needed to decorate controller for versioning ?
3) this attribute
MapToApiVersion("2.0") is used for action only and this [ApiVersion("1.0")] used for controller only ?
4)
[ApiVersion("2.0")] or MapToApiVersion("2.0") for versioning then how web api action url would look like ?
please guide me.
|
|
|
|
|
Greetings experts,
I have a Repeater control with radiobuttonlist:
<asp:Repeater ID="repeaterItems" runat="server"
Purchased:<asp:radiobuttonlist ID="rblPurchaseType" runat="server" RepeatDirection="Horizontal" TextAlign="Right" style="display:inline;">
<asp:ListItem Text="New" />
<asp:ListItem Text="Used" />
</asp:RadioButtonList>
</asp:Repeater>
Then I have some textbox controls inside a div. This div is outside the Repeater control:
<div id="purchaseNewUsed" runat="server">
<table border="0" width="100%">
<tr>
<td>
<tr>
<td>NAME:</td><td><div class="input text"> <asp:TextBox ID="txtPrevOnwerName" style="width:450px;" runat="server"></asp:TextBox></div></td>
</tr>
<tr>
<td>ADDRESS:</td><td><div class="input text"> <asp:TextBox ID="TextBox6" style="width:450px;" runat="server"></asp:TextBox></div></td>
</tr>
<tr>
<td> CITY:</td><td><div class="input text"> <asp:TextBox ID="TextBox7" style="width:150px;" runat="server"></asp:TextBox></div></td><td> STATE:</td><td><div class="input select">
<asp:DropDownList ID="DropDownList2" runat="server" AppendDataBoundItems="True">
<asp:ListItem Value="" Selected="False"></asp:ListItem>
</asp:DropDownList>
</div></td><td> ZIP:</td><td><div class="input text"> <asp:TextBox ID="TextBox9" style="width:50px;" runat="server"></asp:TextBox></div></td>
</tr>
</table></div>
I understand about using wildcards when dealing with controls inside a Repeater.
My issue is the DIV is outside the Repeater control while the RadioButtonList is inside the Repeater control.
The following script is not enabling or disabling the DIV when Used option is selected.
Any ideas how to get this to work?
script type="text/javascript">
$(document).ready(function() {
$('#rblPurchaseType input').change(function () {
if ($(this).val() == "New") {
$("#purchaseNewUsed").prop("disabled", true);
}
else {
$("#purchaseNewUsed").prop("disabled", false);
}
});
});
</script>
Thanks in advance
|
|
|
|
|
First thing you need to appreciate is that jQuery runs on the client, it does not run from your aspx file, the aspx file is simply a guide to what html the client will eventually get. This code
$('#rblPurchaseType input').change(function () {
looks at any "input" element inside something with an id of rblPurchaseType. View the page source (what jQuery is running from), and do you see any elements with an id of rblPurchaseType?
The id you specify in your aspx page is *not* the id used in the html. You can either use fairly complex code to get the proper ids, or use a simpler way of identifying the elements you want.
<asp:Repeater ID="repeaterItems" runat="server">
<ItemTemplate>
Purchased:<asp:radiobuttonlist ID="rblPurchaseType" runat="server" RepeatDirection="Horizontal" TextAlign="Right" data-id="rblPurchaseType" style="display:inline;">
<asp:ListItem Text="New" />
<asp:ListItem Text="Used" />
</asp:RadioButtonList>
</ItemTemplate>
</asp:Repeater>
<script>
$(document).ready(function () {
$("[data-id='rblPurchaseType'] input").change(function () {
});
});
</script>
This code attaches a "data-id" attribute to the outer table that will wrap your components and that attribute is used rather than the element's id. You are going to have a similar problem with your purchaseNewUsed div.
|
|
|
|
|
Assuming you want the controls enabled if any item from the repeater has "used" selected, something like this should work:
$(document).on("click", "input:radio[name$='rblPurchaseType']", function(){
var selectedItems = $("input:radio[name$='rblPurchaseType'][value='Used']:checked");
$("#purchaseNewUsed").prop("disabled", selectedItems.length === 0);
});
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
F-ES Sitecore,
Well explained. I appreciate it very much.
I did try your solution though but it didn't work. Maybe, I did something wrong.
Richard, as usual, your code worked like a charm.
Thank you very much.
|
|
|
|
|
Until now I used dreamweaver and asp and now I'm starting in Asp.Net with visual studio 2017. The design view is very bad, it does not look like anything to the actual view of the page in the browser. In Dreamweaver it usually seems quite, although sometimes not.
How can I work in Visual Studio if the view does not look like? How can you improve visualization?
|
|
|
|
|
I have a table in sql database and I am accessing that table through a model in MVC now if I add few more column and their data the table structure is getting disturbed on a browser. Does anyone have a solution for this?
|
|
|
|
|
I got the solution for this. I just added
@Html.DisplayNameFor(model => model.abc.FirstOrDefault().Name)
this increased the size of the column.
|
|
|
|
|
I have this problem where I change code in a Asp.Net 4.5.1 Webforms program, the users downstairs don't see the code changes, but all my devices upstairs work fine.
So I experimented with Response.Cache, put the code in the Page Load of the Master Page, and it worked fine.
But some programs like my shopping cart went haywire after the weekend. All of a sudden the Shopping Cart page was coming up empty.
Some of the symptoms where I walking the code, using SQL Linq, and the Linq says there are no items, yet I'm looking at the items in a DB Manager.
So I took the Response.Cache out and I have stability now.
I searched, but all I see are code examples, like the proper location is just assumed.
I suspect my wrong placement is sending out headers at the wrong time.
By the way, I have no knowledge on this subject.
Response.Cache.SetExpires(DateTime.Now.AddMinutes(1))
Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate)
Response.Cache.SetValidUntilExpires(True)
Response.Cache.VaryByParams.IgnoreParams = true;
If it ain't broke don't fix it
|
|
|
|
|
Based on the description, I suspect you're caching the page output for all users. So if a user with nothing in their cart is the first to visit your page when the cache is empty, the server caches the output for an empty cart, and returns that for all users. Conversely, if the first visit is from a user with something in their cart, that user's cart will be returned for all users who visit within the next minute.
If your site displays any profile information, that's a potential data-protection issue. One customer's name, address, and contact details could end up being displayed to any other user who visits before the cached output expires.
You'll either need to turn off server caching for pages which vary by user, or use "doughnut caching" to ensure that the user-specific parts of the page don't get cached:
ScottGu's Blog - Tip/Trick: Implement "Donut Caching" with the ASP.NET 2.0 Output Cache Substitution Feature[^]
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Hmm,
Sorry for the late reply, I was refactoring that program.
I'll turn server caching off now and then read the article.
I just checked the website on the server, I'm only caching .jpg, .png and .css files.
Maybe It's located someplace else, I'll keep looking.
<caching>
<profiles>
<add extension=".png" policy="CacheUntilChange" kernelCachePolicy="DontCache" />
<add extension=".jpg" policy="CacheUntilChange" kernelCachePolicy="DontCache" />
<add extension=".css" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
</profiles>
</caching>
Thanks Richard
If it ain't broke don't fix it
modified 18-Jul-17 13:46pm.
|
|
|
|
|
I m trying to make use of the code provided in:
Walkthrough: Creating a Synchronous HTTP Handler[^]
I am fine with the concepts of the code, but I cannot understand how to implement such a project in Visual Studio Community 2015. I want to understand how (if it is possible) to debug the code in Visual Studio and then how to deploy it. The article mentions IIS 6 and IIS 7 whereas on my Windows 10 environment I think I get an Express version of IIE (that came with VS) and the Windows 10 version of IIS, which says in its IIS about box, that it is version 10.0.15063.0.
I have read a lot of material on the topic and often people talk about using VS to Open a Web site from the file menu, but I am not really quite sure what that does or how it helps in this situation. The following article provides a solution close to what I want to achieve, though in my final solution the image will be pulled from a VARBINARY SQL Server database column.
Generic Image Handler Using IHttpHandler[^]
If you down load the source code for this project you get exactly what I would expect. A client web application that writes references to its web page at run time AND a separate iHTTPHandler project that serves up the image requested in the calling parameter.
So I am expecting that there is a need to install the iHTTPHandler either in IIS Express or IIS, and that once installed you should be able to enter a URL that will cause the browser to refresh with the requested image? Visual studio provides no deployment / publishing options for the iHTTPHandler project (that I can see). I presume I just need to copy the BIN DLL into the required folder over seen by IIS? Do I need additional IIS settings for the handler to be recognised?
Finally, there is the part which allows the client application to recognise the fact the handler exists, which I believe is a line in web.config.
<add type="ImageHandlerLib.ImageHandler, ImageHandlerLib" path="ImageHandler.aspx" verb="*" />
There is not much explanation as to the "why" this is needed (i.e. its purpose).
An ideal answer would "in the context of visual studio" provide a step by step explanation of how to get this working in the IDE as a simple handler that returns "hello world" in text. It should describe any limitations in terms of debugging. I am not sure how, for example, I can set a break point and see the return string assigned in the handler. Then any notes regarding deployment for production.
Many thanks.
|
|
|
|
|
Hi,
What is current default concurrent requests settings in IIS 8.5.
How to increase the concurrent requests settings in IIS 8.5.
Thanks in advance
a
|
|
|
|
|
|
Hello,
The strangest thing is happening and I can't track down the source of the issue. I have a form where users can edit their profile. On the form there is a password field. Here is the code:
<asp:textbox id="txtPassword" textmode="Password" runat="server" size="30">
In the SQL database I store the password as a binary, so the UPDATE statement looks as follows:
UPDATE Account SET Password=CONVERT(BINARY,'" & Replace(txtPassword.Text, "'", "''") & "') WHERE AccountID=15
When I retrieve the data, the SQL code looks like this:
SELECT CONVERT(VARCHAR,Password) FROM Account WHERE AccountID=15
Finally, when I pass the password to the text field, the code looks like:
txtPassword.Attributes.Add("value", dsResults.Tables(0).Rows(iRowLoop).Item(5))
I have used this code hundreds of times without any issues, however, for some reason the password in the form is being converted to the password plus a bunch of question marks to fill the remaining space. My password field is size 30, so if your password is "ketchup" then this gets placed in the password field:
ketchup???????????????????????
I looked at the value in the database and there is nothing padded on the end of the value. It seems that something really weird is happening on this line:
txtPassword.Attributes.Add("value", dsResults.Tables(0).Rows(iRowLoop).Item(5))
I am at a loss and am sure I am just overlooking something very simple. I even looked at another site of mine where I have this same pattern and everything looks identical...no clue where I am going wrong.
Thanks in advance for your help!
Frank
|
|
|
|
|
Converting a 30 byte binary value to characters will have the result you see. However, you do realise that any schoolboy hacker could get all your passwords with ease. This is absolutely not the way to store passwords, you should use a proper salted hash algorithm.
|
|
|
|
|
Is there a solution in your response? If you only point out issues and not solutions, you are of no help to the situation.
|
|
|
|
|
Solution to what? You cannot convert a variable length character string to a fixed length binary field and expect to be able to convert it back to its original string. And, as I already mentioned, this is not the way to manage passwords, your system is wide open to hacking. See Secure Password Authentication Explained Simply[^] for how to do it properly.
|
|
|
|
|
He's trying to tell you how to do this in a correct manner which, incidentally, will NOT require padding.
"There are three kinds of lies: lies, damned lies and statistics."
- Benjamin Disraeli
|
|
|
|
|
|
Has anyone figured out a way to assign a session ID manually
I have a cart program, in which the cart items are stored by session ID. I send them a email saying you still have items pending for checkout, they click the link with the session id and there cart loads.
At the moment, I'm picking up the new session id and changing the old session id. But if they do it twice, the link stops working.
I was thinking maybe I can force the old session ID if they use a different computer.
FYI:
I have a new program that eliminated this problem, I just need to support the old program for at least 6 more months.
If it ain't broke don't fix it
|
|
|
|
|
I ended up writing this which works on all my devices and multiple browsers that have never been to the website.
But 1 strange things occurs ...
It works on all my devices, Win10 using Firefox, Edge, Chrome and my iphone 6S+ using Google Inbox and Safari, Firefox
But it doesn't work downstairs on the other internal subnet where the complaints come from.
Seems every time I fix a bug or mistake, improve something, the changes never reflect downstairs and I get yelled at.
I don't know if this is some evil spirit or something, but I do need to figure this out soon.
Any ideas welcomed, even an exorcist.
m_Context.Session.Abandon()
m_Context.Response.Cookies.Add(New HttpCookie("ASP.NET_SessionId", ""))
Dim manager = New SessionIDManager()
manager.RemoveSessionID(m_Context)
Dim addCookie As Boolean = False
manager.SaveSessionID(HttpContext.Current, m_sessionID_OLD, False, addCookie)
Dim currentUrl As String = m_Context.Request.Url.GetLeftPart(UriPartial.Path)
m_Context.Response.Redirect(currentUrl)
If it ain't broke don't fix it
|
|
|
|
|
Don't use the Session ID to identify users in this way, it's not suitable as you're finding out. Generate a GUID for people and store it in a cookie and use the GUID to identify people\carts.
|
|
|
|
|
Hi,
Currently I am working on fine tuning the IIS 8.5 settings.
The CPU is 6 core and RAM is 16 GB
I have set all the Perfmon counters for general and IIS as per below link :
http://www.monitis.com/blog/important-iis7-counters/
Now after observing the Perfmon, I found that ASP.NET\Request Wait Time is taking more than 5 seconds.
So I need to fine tune the Thread Pool settings in machine.config as in below link :
http://geekswithblogs.net/StuartBrierley/archive/2009/09/30/tuning-iis---machine.config-settings.aspx
Currently there is no thread pool settings in machine.config, it is <processmodel autoconfig="“true”">.
So please advise that can I update the thread pool settings as below :
Thread pool setting in Machine.config
maxconnection 12 * #CPUs
maxIoThreads 100
maxWorkerThreads 100
minFreeThreads 88 * #CPUs
minLocalRequestFreeThreads 76 * #CPUs
As I need some basis to change the default Thread Pool Settings.
Or what Perfmon counters should I need to study in-order to change the default Thread Pool Settings.
Please suggest.
Thanks in advance.
a
|
|
|
|
|